需求:
今天,同事问了我一个需求。 使用html邮件方案时,单击后显示的outlook中,其内容的正文部分是否具有html的样式和格式。
真的是这样吗? 10年前,刚接触ActiveX控件的时候,因为ActiveX控件的强度说甚至可以操作注册表,所以在注册表中注册的邮件客户端APP应用程序也可以进行高级功能的定制吧。 然后,我简单地实践了。
实践:
很简单。 首先制作html页面。 上面有超链接“Share this link”。 单击此链接可打开Outlook客户端并填写相关内容。 特别是邮件的正文部分需要风格。 例如,简单地设定文字的颜色。
附加代码:
让我们先写一个js :
/*
* Demo:使用mailto方案将html格式的内容作为邮件内容发送
*/
函数传感器(subject,toName,ccName,bccName )。
//以下两行从http://msdn.Microsoft.com/en-us/library/office/aa 210897 (v=office.11 ).aspx中复制
创建与outlook APP对应的ActiveX控件对象
varoutlookapp=new activexobject (outlook.application );
//MAPI是“消息收发APP接口”,如果在两个APP应用中启用了“MAPI”,则可以彼此共享邮件信息
var namespace=outlook app.get namespace (' mapi );
开始构建outlook邮件条目
varmailitem=outlook app.createitem (0;
//设置邮件主题
mailItem.Subject=subject;
//设置邮件收件人列表
mailItem.To=toName;
//设置邮件抄送列表
mailItem.Cc=ccName;
//设置邮件密件抄送列表
mailItem.Bcc=bccName;
//这里请特别注意。 这里的mailBody是可以具有html样式的body
var mailBody='
thisistheemailbodywithhtmlstyle '; //将邮件内容设为html内容
mailItem.HTMLBody=mailBody;
//显示邮件
mailitem.display(0;
//重置资源
mailitem=空;
nameSpace=null;
outlookApp=null;
}
然后在页面上调用我们的这个方法使用mailto sheme:
测试:
假设此页面被称为testmailto.html。 在IE浏览器中测试时,必须首先在浏览器中启用对ActiveX控件的支持。
之后,这个超链接Share this link就会出现。 单击以显示以下内容,警告您ActiveX控件可能太强,不安全,并询问您是否允许进行交互。
如果选择“Yes”,将打开Outlook客户端,除了填写的常规信息(Subject、to、cc、bcc )外,最重要的是body部分不是纯文本,而是带样式的文本。
这就是我们需要的。
结论:
因此,如果直接使用mailto scheme,就不能创建包含样式文本的邮件内容。 但是,虽然可以使用ActiveX控件轻松破坏,但ActiveX仅由IE支持,因为存在安全隐患。
例如,如果在Firefox中运行相同的示例,则会报告以下错误:
所以我还得继续研究,看其他浏览器如何实现这个同样的需求。