我使用codeigniter发送电子邮件...激活用户帐户后,它会发送另一封电子邮件来插入标签,但当用户收到消息时,没有出现标签,但当我尝试使用其他元素时,如或,它会呈现样式,但怎么会没有?
$message = 'Congratulations! Use the script below to add your widget.<br>';
$message .= "<iframe frameborder=\"0\" src=\"<?=base_url() ?>business/widget/{$id}\" height=\"320px;\" width=\"480px\" style=\"border: 1px solid #ccc;\"></iframe>";
$this->email->message($message);
if($this->email->send())
{
other code....
}
发布于 2013-06-07 14:02:49
Gmail和许多其他电子邮件客户端对您可以在HTML电子邮件中使用的HTML非常严格。
<iframe>
是严格禁止的,因为它可能会将用户暴露在他们意想不到的网站中,而另一端的网站可以记录有关用户的信息(例如他们的IP地址)。由于类似的原因,图片被屏蔽了。
如果我是你,我会坚持使用超级基础的HTML和CSS。专注于将消息传递给用户,并希望他们的客户能让消息看起来更漂亮。总是提供一个链接,以便在其他地方查看完整的消息。
发布于 2013-06-07 14:05:41
<iframe>
%s不能在大多数电子邮件客户端中使用-无论是在应用程序中还是在网站中。它们被剥离的原因有以下几种:
<iframe>
可用于网络钓鱼/恶意攻击,将恶意代码放入经过审查且安全的内容中(浏览器/客户端无法查看或扫描加载到iframe中的内容,只能将其加载到DOM中)。另一种选择( YouTube所做的)不是在iframe (在他们的例子中,是视频)中嵌入一些东西,而是在<img>
或缩略图周围有一个<a>
,这会给人一种正在播放视频的感觉。当你点击它时,它所做的一切就是把你带到那个视频的URL。
如果您试图在电子邮件中添加大量代码,您可以手动编写。然而,这有其他影响,因为其他一些标签是有限的/样式可能是电子邮件的一个大麻烦。一些HTML5元素也被从电子邮件中剥离。
正如Orangepill所说,Campaign Monitor已经完成了跑腿工作和provided a chart showing where iframes can be used。他们还建议远离iframe。
一个没有提到的解决方案是有一个图像,在底部有一个链接,说查看网页中的这条消息,这将把用户带到一个页面与<iframe>
工作。
https://stackoverflow.com/questions/16976966
复制相似问题