我有一个代码可以从excel创建多个电子邮件。一切正常,期望我在.htm文件上的图像成为电子邮件正文。
我在单词上写下电子邮件并将其保存为网页,进行过滤。然后我使用这段代码将整个文件读成一个字符串并将其放在.HTMLBody上。
Dim strLine As String
Open strBody For Input As #1
strBody = ""
Do While Not EOF(1)
Line Input #1, strLine
strBody = strBody & vbCrLf & strLine
Loop
Close #1
在完成的电子邮件中,我的图片显示错误"无法显示关联的图片..."。
如果我在Outlook上打开一个新的邮件窗口并将.htm文件作为文本插入(无需保存或执行任何其他操作),则会显示该图像。
答案 0 :(得分:1)
Outlook使用Word来呈现图像,而Word不支持嵌入式(src="data:image"
)图像。您需要将图像作为文件附加,在附件(Attachment.PropertyAccessor.SetProperty
)上设置PR_ATTACH_CONTENT_ID属性,并确保您的HTML通过src=cid:xyz
属性引用图像(其中xyz是PR_ATTACH_CONTENT_ID
财产)。
PR_ATTACH_CONTENT_ID
属性DASL名称为http://schemas.microsoft.com/mapi/proptag/0x3712001F