包含嵌入图片(以及嵌入式脚本、CSS表和其他对象)的HTML邮件无法在不修改邮件正文的情况下呈现。这是因为嵌入对象的URL被表示为CID(Content-ID值)而不是真实的URL。HTML邮件正文中的CID参考如下所示:(IMG SRC =“cid:picture1”)。这是图像源是Content-ID值等于“picture1”的邮件附件的示例。在呈现HTML正文时,必须显示该图像代替(IMG SRC =“cid:picture1”)标签。因此,在呈现邮件的HTML主体之前,开发人员必须用相应图像的真实URL替换所有这些伪URL。例如,你可以将所有嵌入对象的附件保存到磁盘,并将相应的CID引用替换为保存的附件URL。但是,手动执行此操作非常复杂。 幸运的是,MailBee具有显示带有嵌入对象的HTML体的特殊功能。GetHtmlAndSaveRelatedFiles方法将所有嵌入的对象保存到临时位置,用其虚拟路径替换所有CID,并返回准备好的HTML主体字符串。Web应用程序开发人员可以使用此方法在浏览器中显示带有嵌入图片的HTML格式的邮件。 使用此方法时,还应将WorkFolder物理位置设置为保存嵌入对象的附件。此物理位置必须与传递给GetHtmlAndSaveRelatedFiles方法的virtualPath值相匹配。
C#// We assume "C:Inetpubwwwroot" is a physical path to the location// visible from Internet as "http://www.domain.com" (virtual path).msg.Parser.WorkingFolder = @"C:Inetpubwwwroot";Response.Write(oMsg.GetHtmlAndSaveRelatedFiles("http://www.domain.com", VirtualMappingType.Static, MessageFolderBehavior.DoNotCreate));VB.NET' We assume "C:Inetpubwwwroot" is a physical path to the location' visible from Internet as "http://www.domain.com" (virtual path).msg.Parser.WorkingFolder = "C:Inetpubwwwroot"Response.Write(oMsg.GetHtmlAndSaveRelatedFiles("http://www.domain.com", VirtualMappingType.Static, MessageFolderBehavior.DoNotCreate))
因此,如果HTML格式的邮件体包含(IMG SRC =“cid:pic1”),并且该消息还具有ContentID(CID)“pic1”的嵌入式附件“picture.gif”,则调用GetHtmlAndSaveRelatedFiles方法将替换“cid: pic1“与http://www.domain.com/picture.gif值。 如果你正在开发不使用虚拟路径的桌面应用程序,则可以将virtualPath设置为NonWeb值。在这种情况下,保存文件的物理路径将被用作URL。C#
msg.Parser.WorkingFolder = @”C:Temp”;
Response.Write(msg.GetHtmlAndSaveRelatedFiles(null, VirtualMappingType.NonWeb, MessageFolderBehavior.CreateOnly));VB.NET
msg.Parser.WorkingFolder = “C:Temp”
Response.Write(msg.GetHtmlAndSaveRelatedFiles(Nothing, VirtualMappingType.NonWeb, MessageFolderBehavior.CreateOnly))
换句话说,嵌入式图片将由文件系统上的物理路径表示,这些路径将被放置在相应HTML标签的SRC元素中。例如(IMG SRC =“cid:pic1”)将被替换为(IMG SRC =“file:/// C: Temp picture.gif”>)。
标签:电子邮件
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!