我正在使用ASP classic和CDO以CreateMHTMLBody
方法发送电子邮件。我的电子邮件中有几张图片,其中一些是静态的,不会改变,但其中一些会根据电子邮件内容而改变。一些像iCloud这样的邮件软件将图片显示为附件,即使我将它们全部都带有完整路径URL地址。我已经使用了AddRelatedBodyPart
但是现在他们在你必须要去的地方显示图像,但他们仍然会在附件中显示图像。我希望图片只显示在电子邮件正文中而不是附件中。有谁知道如何解决这一问题?以下是我的代码示例:
Set myMail=CreateObject("CDO.Message")
myMail.Subject= "Subject of Email"
myMail.From= "from@site.com"
myMail.To= "to@site.com"
myMail.CreateMHTMLBody "http://www.mysite.com/email.html"
strImagePath = Server.MapPath("\") & "\images\mypic1.jpg"
myMail.AddRelatedBodyPart strImagePath, "my_pic_1", 0
strImagePath = Server.MapPath("\") & "\images\mypic2.jpg"
myMail.AddRelatedBodyPart strImagePath, "my_pic_2", 0
myMail.Send
set myMail=nothing
提前感谢您的时间和帮助。
答案 0 :(得分:0)
要在电子邮件中添加图片,您必须在邮件的正文中使用内嵌IMG
标记,并使用图片的完全限定路径(http://。 ..)。不要将它们视为附件。
答案 1 :(得分:0)
CreateMHTMLBody
不是您所需要的。此方法将创建一个获取URL的多部分消息,并对返回的HTML进行后处理。它为它找到的每个img src获取资源,将返回的资源编码为正文部分,并更新HTML img src以指向正文部分。
同样CreateMHTMLBody
在ASP代码中使用并不是一件好事,因为它使用WinINET Http堆栈来获取资源,不应该从ASP代码中使用WinINET。
您真正需要的是使用类似WinHTTP的内容来获取HTML资源,然后将其分配给Message的HTMLBody
属性。
答案 2 :(得分:0)
我知道这个问题已经过时了,但也许你(或其他人)仍在寻找答案:
myMail.Configuration.Fields("urn:schemas:httpmail:content-disposition-type")="inline"
myMail.Configuration.Fields.Update
这会导致大多数邮件客户端无法将图像呈现为附件。
答案 3 :(得分:0)
true;
strImagePath = Server.MapPath("\") & "\images\mypic1.jpg"
response.write strImagePath ' try
myMail.AddRelatedBodyPart strImagePath, "mypic1.jpg", 0