为什么我的图像不embeddedHTML电子邮件?
我试图运行VBA中的代码,将发送HTML电子邮件,并试图在电子邮件中embedded图像。 我有以下代码这样做:
Sub EmailImage() Dim oApp As Outlook.Application Dim oEmail As MailItem Dim colAttach As Outlook.Attachments Dim oAttach As Outlook.Attachment Set oApp = CreateObject("Outlook.Application") Set oEmail = oApp.CreateItem(olMailItem) Set colAttach = oEmail.Attachments Set oAttach = colAttach.Add("C:\Users\User1\Documents\thumbs-up.jpg") oEmail.Close olSave oEmail.To = "abc@abc123.com" oEmail.HTMLBody = "<IMG alt='' hspace=0 src='cid:thumbs-up.jpg' align=baseline border=0> </BODY>" oEmail.Send Set oEmail = Nothing Set colAttach = Nothing Set oAttach = Nothing Set oApp = Nothing End Sub
但是会发生什么是图像被附加,但有一个红色的十字框在图像应该在哪里,如下图所示:
我已经尝试了以下对代码的适应:
Sub EmailImage() Dim oApp As Outlook.Application Dim oEmail As MailItem Dim colAttach As Outlook.Attachments Dim oAttach As Outlook.Attachment Set oApp = CreateObject("Outlook.Application") Set oEmail = oApp.CreateItem(olMailItem) Set colAttach = oEmail.Attachments Set oAttach = colAttach.Add("C:\Users\User1\Documents\thumbs-up.jpg") oAttach.PropertyAccessor.SetProperty("http://schemas.microsoft.com/mapi/proptag/0x3712001F", "MyCid") oEmail.Close olSave oEmail.To = "abc@abc123.com" oEmail.HTMLBody = "<IMG alt='' hspace=0 src='cid:MyCid' align=baseline border=0> </BODY>" oEmail.Send Set oEmail = Nothing Set colAttach = Nothing Set oAttach = Nothing Set oApp = Nothing End Sub
但是,这给了我错误“编译错误:预期=” oAttach.PropertyAccessor.SetProperty("http://schemas.microsoft.com/mapi/proptag/0x3712001F", "MyCid")
所以我试图取出, "MyCid")
,并将电子邮件中的代码更改为oEmail.HTMLBody = "<IMG alt='' hspace=0 src='cid:thumbs-up.jpg' align=baseline border=0> </BODY>"
,看起来像这样:
Sub EmailImage() Dim oApp As Outlook.Application Dim oEmail As MailItem Dim colAttach As Outlook.Attachments Dim oAttach As Outlook.Attachment Set oApp = CreateObject("Outlook.Application") Set oEmail = oApp.CreateItem(olMailItem) Set colAttach = oEmail.Attachments Set oAttach = colAttach.Add("C:\Users\User1\Documents\thumbs-up.jpg") oAttach.PropertyAccessor.SetProperty ("http://schemas.microsoft.com/mapi/proptag/0x3712001F") oEmail.Close olSave oEmail.To = "abc@abc123.com" oEmail.HTMLBody = "<IMG alt='' hspace=0 src='cid:thumbs-up.jpg' align=baseline border=0> </BODY>" oEmail.Send Set oEmail = Nothing Set colAttach = Nothing Set oAttach = Nothing Set oApp = Nothing End Sub
但是现在我得到错误Compile error: argument not optional
,它指向行oAttach.PropertyAccessor.SetProperty ("http://schemas.microsoft.com/mapi/proptag/0x3712001F")
的.SetProperty
部分。
请注意,我正在使用Windows 7,Microsoft Excel 2010和Microsoft Outlook 2010。
好吧,谷歌search错误消息“编译错误:预期=”之后,更改行:
oAttach.PropertyAccessor.SetProperty("http://schemas.microsoft.com/mapi/proptag/0x3712001F", "MyCid")
至:
Call oAttach.PropertyAccessor.SetProperty("http://schemas.microsoft.com/mapi/proptag/0x3712001F", "MyCid")
工作。
感谢您的评论和答复。
在调用子试图摆脱()时,VBA不喜欢括号:oAttach.PropertyAccessor.SetProperty“ http://schemas.microsoft.com/mapi/proptag/0x3712001F ”,“MyCid”