Ich habe ein .Net-Desktop-Programm, das Interop verwendet, um E-Mails über Outlook zu senden. Beim Senden an mehrere Empfänger wird eine E-Mail pro Empfänger verwendet, da die Anrede für die Personalisierung ersetzt wird. Der Körper der E-Mails aus einer Word-Datei eingefügt (aus Gründen der Übersichtlichkeit gekürzt) folgt:Wie aktiviert man eine Word-Datei, die programmatisch in einen Outlook-E-Mail-Text eingefügt wird?
objOutlook = New Outlook.Application
objItem = objOutlook.CreateItem(Outlook.OlItemType.olMailItem)
Dim inspector As Outlook.Inspector = objItem.GetInspector
Dim wordDoc As Word.Document = inspector.WordEditor
wordDoc.Activate() 'Not sure what this does but seems to be needed !
'Insert file contents into body of email.
Dim currentRange As Word.Range = wordDoc.Application.Selection.Range
currentRange.InsertFile(fileName,,,, False)
an dieser Stelle Wenn ich jetzt eine ObjItem.Display tun, gefolgt von ObjItem.Send dann funktioniert es perfekt. Der Inhalt der Word-Datei wird in den E-Mail-Text eingefügt und die E-Mail wird gesendet.
Aber wenn ich einfach ein ObjItem.Send (ohne .Display) mache, dann wird die E-Mail mit einem leeren Körper gesendet.
Wie erzwinge ich, dass der E-Mail-Text mit dem Word-Inhalt gesetzt wird, ohne die E-Mail anzeigen zu müssen?
Ich habe das Problem gelöst. Bevor ich einen Send-Befehl ausführte, verwendete ich die BodyFormat-Methode, um das Format auf HTML zu setzen. Dadurch wird der Inhalt ohne Verwendung der Anzeigemethode in den E-Mail-Text eingefügt. –