读取电子邮件正文的HTM文件,但图像不起作用

时间:2015-09-26 21:13:24

标签: vba excel-vba outlook excel

我有一个代码可以从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文件作为文本插入(无需保存或执行任何其他操作),则会显示该图像。

1 个答案:

答案 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