MailBee.NET ObjectsL显示HTML/纯文本邮件教程(三):显示带嵌入图片的邮件

news/2024/7/4 8:57:54

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

MailBee.NET Objects是一款为创建、发送、接收以及处理电子邮件而设计的健壮、功能丰富的.NET控件。几行代码便可为应用程序添加E-Mail支持,简单高效。具备“必需”以及独特的功能,这些控件帮助开发人员简单快速地将复杂的电子邮件功能添加到他们的应用程序中。

 

MailBee.NET Objects介绍和试用点击查看>>>

 

本文主要介绍了显示带嵌入图片的邮件的代码示例。目前MailBee.NET Objects在线订购享75折优惠正在进行中,欢迎您下载试用版进行运用!

包含嵌入图片(以及嵌入式脚本、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:\Inetpub\wwwroot" is a physical path to the location
// visible from Internet as "http://www.domain.com" (virtual path). 
msg.Parser.WorkingFolder = @"C:\Inetpub\wwwroot";
Response.Write(oMsg.GetHtmlAndSaveRelatedFiles("http://www.domain.com", VirtualMappingType.Static, 

MessageFolderBehavior.DoNotCreate));

VB.NET
' We assume "C:\Inetpub\wwwroot" is a physical path to the location
' visible from Internet as "http://www.domain.com" (virtual path). 
msg.Parser.WorkingFolder = "C:\Inetpub\wwwroot"
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”>)。

转载于:https://my.oschina.net/u/3279502/blog/1506726


http://www.niftyadmin.cn/n/2676742.html

相关文章

Zend 快捷键

本文省略“通用快捷键”描述,诸如:ctrlN新建,ctrlO打开,ctrlC复制,ctrlV,ctrlX……等等几乎所有软件 都通用的一组快捷键,而着重介绍zde独有的快捷键,了解并灵活运用这些快捷键以后&…

百科fgets()用法

fgets编辑从文件结构体指针stream中读取数据,每次读取一行。读取的数据保存在buf指向的字符数组中,每次最多读取bufsize-1个字符(第bufsize个字符赋),如果文件中的该行,不足bufsize个字符,则读完…

小米的“真智能家居”,会不一样吗?

作为下一个千亿级市场,智能家居从不缺乏野心家。因此当看到各家公司都在反复谈论对这个行业的整体战略、未来愿景、平台构建、颠覆级产品等的时候,宅客君想,大家应该一点都不陌生。 在反复宣讲自家智能家居愿景后,小米在今天上午也…

javascript refresh page

Javascript刷新页面的几种方法: 1 history.go(0) 2 location.reload() 3 locationlocation 4 location.assign(location) 5 document.execCommand(Refresh) 6 window.navigate(location) 7 location.replace(location) 8 document.U…

iOS项目重命名以及Xcode修改Scheme名称图文详解 (yoowei)

在iOS开发中,有时候想改一下项目的名字,都会遇到很多麻烦。温馨提醒:记得备份。 看到项目名称,总感觉有点low,所以尝试着要将其更改一下。 项目原结构如下: 更改后的项目结构如下: 下面开始更改操作 1&…

深度学习如何入门

为什么80%的码农都做不了架构师?>>> 作者:Jacky Yang 链接:https://www.zhihu.com/question/26006703/answer/129209540 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。…

精品小图标

精品小图标 GIF小图标 Home首页 登陆注册 电话 电视机 放大镜 …

【学习中】Unity中级篇 Schedule

章节内容签到Unity3D 实战技术第二版视频教程(中级篇)1.游戏引擎发展史 2.Unity发展史 3.3D图形学与必要组件 5月19日4.核心类_GameObject类 5月19日5.核心类_MonoBehaviour类_脚本生命周期 5月19日6.Unity伪多线程研究实验 5月19日7.核心类_Time类 5月19日8.场景异步加…