Hi,
ich nutze zum Senden einer Mail aus Access heraus diese sicher bekannte Funktion:
Public Function CreateEmailWithOutlook(strMessageTo As String, strSubject As String, strMessageBody As String)
' Define app variable and get Outlook using the "New" keyword
Dim olApp As New Outlook.Application
Dim olMail As Outlook.MailItem ' An Outlook Mail item
' Create a new email object
Set olMail = olApp.CreateItem(olMailItem)
' Add the To/Subject/Body to the message and display the message
With olMail
.To = strMessageTo
.Subject = strSubject
.HTMLBody = strMessageBody
.Display ' To show the email message to the user
End With
' Release all object variables
Set olMail = Nothing
Set olApp = Nothing
End Function
In einem Formular wird per Schaltfläche dann folgendes ausgeführt:
Dim strHTMLNachricht As String
strHTMLNachricht = DLookup("Signatur", "tblTestSign", "IDTestSign=1")
CreateEmailWithOutlook Me.AP_Email, "Betreff", strHTMLNachricht
Der Text, welcher aus einer Tabelle geholt wird, ist im Rich-Text-Format. Wie ist es möglich, hier eine individuelle Anrede (z.B. Sehr geehrter Herr Muster, )noch voran zu setzen, welche die gleiche Formatierung hat, wie der folgende Text (Arial 11)?
Weiterhin würde ich gern in den Nachrichtentext unser Firmenlogo einbauen. Auch hier weiß ich im Moment nicht wie ich das machen soll.
Vieleichte könnt Ihr mir mal wieder weiterhelfen?
LG
datekk
Hi.. Ich habe es nach etwas probieren selbst hinbekommen. Man kann richtigen HTML Code an die Variable übertragen und damit dann auch die Schriftart usw. bestimmen. Innerhalb eines HTML Codes kommen ja auch Anführungszeichen vor. Hier wird aber dann das Hochkomma wieder akzeptiert.
Hier nun mein Codebeispiel / meine Lösung:
strMessageBody = strGruß & vbCrLf & vbCrLf & strSignatur 'Anrede und Signatur zusammenfügen
strMessageBody = "<p><span style='font-size:14.5px;'><span style='font-family:arial,helvetica,sans-serif;'>" & _ ' HTML Formatierungsoptionen öffnen
strMessageBody & _ ' Variable darin einschließen
"</span></span></p>" ' Formatierung abschließen
Bilder lassen sich nur über Links einfügen. Am besten ist es wohl, den Text mittels HTML Editor zur erstellen und dann den Code in die Access Tabelle in ein Rich-Text Feld einzufügen. Diese Editoren gibt es online. Einfach mal die Suchmaschine benutzen.
So, damit wäre dieses Problem gelöst.
LG
datekk
Hi,
soweit ich es beurteilen kann, ist das RichText-Konzept in Access nicht komplett durchdacht. Access bettet Richtext scheints in HTML ein.
Wenn du ein HTML-Template erstellst, in dem deine variablen Felder mit eindeutigen HTML-Tags (oder mit eindeutigen Dummy-Werten) gekennzeichnet sind, könntest du diese Werte doch mit Werten aus deiner Tabelle ersetzen und den HTML-Text dann an Outlook übergeben, etwa so (Luftcode):
strHTML="<html><body>....<font=..>Sehr geehrte"
If myTable!Geschlecht = "W" then
strHTML=strHTML & " Frau " & myTable!Nachname & ",</font>"
else
strHTML=strHTML & "r Herr " & myTable!Nachname & ",</font>"
endif
Wenn du den Richtext- bzw. HTML-Code sehen möchtest, den Access speichert, bau einfach ein Formular mit dem betreffenden Tabellen-Feld (Textfeld, mehrzeilig vergrößern) und stelle die Eigenschaft statt auf RichText auf Nur Text. Dann siehst du den Quellcode des Feldes. Soweit is weiß, kapselt Access den RichText in <div> und </div>.
Meine Idee wäre, alle Formatierungen (Font, Größe usw.) im HTML-Template zu definieren und dann nur die "nackten" Werte (Nachname) zu eretzen, also ohne RichText-Formatierung oder aber das komlette Richtext-Datenfeld mit <div> in das HTML-Template einzubetten.
Vielleicht hilft das etwas weiter.
Hi,
da warst du ein paar Minuten schneller...
Gruß,
crystal
Noch was:
schicke dir selbst eine Mail mit dem Firmenlogo. Im Mail-Text ist dann das Logo im 7-Bit-Code enthalten, also quasi hart-codiert. (Quelltext der Nachricht speichern und dann mit einem Editor anschauen.) Beim Versenden der Mail kann Outlook mit einem Link auf eine lokale Datei natürlich nichts anfangen, deshalb wird der Inhalt der Datei als 7-Bit-ASCII-Code eingebettet und den kannst du dann in dein HTML-Template einbauen.