E-Mail mit Anhang versenden über VBA & mit Signatur

Zu meinem Artikel „E-Mail mit Anhang versenden über VBA“ gab es gestern einen Kommentar.

In diesem wurde ein Problem aufgebracht, welches sich nicht ganz so einfach lösen lies. Es sollte eine Funktion genutzt werden, die seit Office 2013 nicht mehr zur Verfügung steht. Der Befehlsaufruf hätte die vordefinierte Signatur an das Ende der E-Mail gesetzt werden sollen. Dieses habe ich wie folgt gelöst:

Sub MailversandSignatur()
 
Dim sPath As String
Dim strUser As String
Dim strPfad As String
Dim strSignatur As String
Dim Body As String
Dim Nachricht As Object, OutlookApplication As Object
Set OutlookApplication = CreateObject("Outlook.Application")
Dim Anhang As String
Anhang = ThisWorkbook.FullName
Set Nachricht = OutlookApplication.CreateItem(0)
With Nachricht
.To = "testuser@testdomain.de"
.Subject = "Test"
.Attachments.Add Anhang
 
'Namen der Signatur definieren
strSignatur = "TestSignatur"
 
strUser = Environ("Userprofile")
strPfad = strUser & "\AppData\Roaming\Microsoft\Signatures\" & strSignatur & ".htm"
.htmlBody = "<html><body><p>Sehr geehrte Damen und Herren,</p><p>im Anhang erhalten Sie die Liste.</p><p></p>" & test(strPfad) & "</body></html>"
 
.Display
'.Mail.Send
 
End With
Set OutlookApplication = Nothing
Set Nachricht = Nothing
End Sub
 
 
Function test(sPath As String)
    test = CreateObject("Scripting.FileSystemObject").OpenTextFile(sPath).ReadAll()
End Function

Ich lese die Signatur aus dem Standard-Ablagepfad in Form der gespeicherten HTML-Datei aus. Diese wird an das Ende des „HTMLBody“ der E-Mail angehangen.
Mit der Formatierung benötige ich die „SendKeys“-Methode nicht. Dieses wird in einigen Sicherheitsrelevanten Programmen wie Antiviren-Lösungen als problematisch deklariert.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.