我正在用ASP和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提前感谢您的时间和帮助。
发布于 2012-06-06 04:55:30
为了在电子邮件中包含图像,您必须在邮件的正文中使用内联IMG标记以及图像的完全限定路径(http://...)。不要把它们当做附件。
发布于 2012-06-06 20:40:14
CreateMHTMLBody不是您所需要的。此方法将创建一个多部分消息,获取URL并对返回的HTML进行后处理。它为找到的每个img src获取资源,将返回的资源编码为正文部分,并更新HTML img src以指向正文部分。
此外,在CreateMHTMLBody代码中使用WinINET也不是一件好事,因为它使用Http堆栈来获取资源,不应该在ASP代码中使用WinINET。
您真正需要的是使用WinHTTP之类的东西来获取HTML资源,然后将其分配给消息的HTMLBody属性。
发布于 2015-06-12 06:07:59
我知道这个问题很古老,但也许你(或其他人)仍在寻找答案:
myMail.Configuration.Fields("urn:schemas:httpmail:content-disposition-type")="inline"
myMail.Configuration.Fields.Update这应该会导致大多数邮件客户端不将图像渲染为附件。
https://stackoverflow.com/questions/10904763
复制相似问题