Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

Rich-Text-Anrede in eMail nutzen und Bild einfügen

Begonnen von datekk, April 28, 2016, 09:55:19

⏪ vorheriges - nächstes ⏩

datekk

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
Access 2016 mit SQL Server Backend. Bereits umgesetzt: Access mit MS SQL Backend,  ADODB Formularbindung, Streamen von Dateien zum SQL Server und zurück (Filestream), Drag&Drop Dateiupload zum Server, CTI / TAPI Integrierung in Access Anwendung - Nutzung auch über Remote Desktop, selbst aktualisierendes Access Frontend auf entfernten Rechnern (Upgrade). Berichte / Kreuztabellen mit SQL Server Backend, Mail Tagging, Outlook Steuerung über Access und umgekehrt // Grundwissen in .Net Core & Blazor Apps

datekk

#1
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
Access 2016 mit SQL Server Backend. Bereits umgesetzt: Access mit MS SQL Backend,  ADODB Formularbindung, Streamen von Dateien zum SQL Server und zurück (Filestream), Drag&Drop Dateiupload zum Server, CTI / TAPI Integrierung in Access Anwendung - Nutzung auch über Remote Desktop, selbst aktualisierendes Access Frontend auf entfernten Rechnern (Upgrade). Berichte / Kreuztabellen mit SQL Server Backend, Mail Tagging, Outlook Steuerung über Access und umgekehrt // Grundwissen in .Net Core & Blazor Apps

crystal

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.
Wer Fehler in meinen Antworten findet, darf sie behalten, muss sie aber kommentieren. ;-)
Dies ist keineswegs arrogant gemeint, sondern soll nur unterstreichen, dass meine Antworten - natürlich - nicht immer fehlerfrei sind und sein können.
Devise: bitte immer erst selbst probieren!

Aus gesundheitlichen Gründen nur noch selten dabei...

crystal

Hi,
da warst du ein paar Minuten schneller...
Gruß,
crystal
Wer Fehler in meinen Antworten findet, darf sie behalten, muss sie aber kommentieren. ;-)
Dies ist keineswegs arrogant gemeint, sondern soll nur unterstreichen, dass meine Antworten - natürlich - nicht immer fehlerfrei sind und sein können.
Devise: bitte immer erst selbst probieren!

Aus gesundheitlichen Gründen nur noch selten dabei...

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.
Wer Fehler in meinen Antworten findet, darf sie behalten, muss sie aber kommentieren. ;-)
Dies ist keineswegs arrogant gemeint, sondern soll nur unterstreichen, dass meine Antworten - natürlich - nicht immer fehlerfrei sind und sein können.
Devise: bitte immer erst selbst probieren!

Aus gesundheitlichen Gründen nur noch selten dabei...