【发布时间】:2016-08-10 23:38:08
【问题描述】:
我有一个 .Net 桌面程序,它使用 Interop 通过 Outlook 发送电子邮件。当发送给多个收件人时,它使用每个收件人的电子邮件,因为称呼代替了个性化。电子邮件的正文从 Word 文件中插入如下(为清楚起见而缩短):
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)
如果此时我现在执行 ObjItem.Display,然后执行 ObjItem.Send,那么它可以完美运行。将Word文件内容放入邮件正文并发送邮件。
但如果我只是简单地执行 ObjItem.Send(不带 .Display),那么电子邮件会以空白正文发送。
如何强制使用 Word 内容设置电子邮件正文而不显示电子邮件?
【问题讨论】:
-
我已经解决了这个问题。在执行发送命令之前,我使用 BodyFormat 方法将格式设置为 HTML。这会导致内容在不使用 Display 方法的情况下放入电子邮件正文。