2016-08-10 1 views
0

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?

+0

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. –

Antwort

0

Versuchen Sie, die Save-Methode der MailItem-Klasse aufzurufen.

Sie können auch versuchen, das Dokument in einer Datei im HTML-Format zu speichern und dann die HTMLBody-Eigenschaft der MailItem-Klasse festlegen.

Verwandte Themen