我使用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....
}
答案 0 :(得分:14)
Gmail和许多其他电子邮件客户端对您可以在HTML电子邮件中使用的HTML非常严格。
<iframe>
严格限制,因为它可能会将用户暴露给他们不期望的网站,而另一端的网站可能会记录有关用户的信息(例如他们的IP地址)。图像因类似原因而被阻止。
如果我是你,我会坚持使用超级基本HTML和CSS。专注于向用户传达消息,并希望他们的客户使消息看起来很漂亮。始终提供链接以查看其他地方的完整信息。
答案 1 :(得分:6)
<iframe>
不能在大多数电子邮件客户端中使用 - 无论是在应用程序中还是在网站中。它们要么被剥离,原因有以下几种:
<iframe>
可用于网上诱骗/恶意攻击,将恶意代码置于原本经过审查和安全的状态(浏览器/客户端无法查看或扫描加载到iframe中的内容,只是加载它进入DOM)。替代方案(YouTube所做的)不是在iframe中嵌入某些东西(在他们的情况下是视频),而是<a>
包围<img>
或缩略图,您正在播放视频的印象。当你点击它时它所做的就是你带到那个视频的URL。
如果您尝试将大量代码放入电子邮件中,您可以手动将其写入。但是这有其他效果,因为其他一些标签受限/样式可能是电子邮件的一大麻烦。 AFAIK也会从电子邮件中删除一些HTML5元素。
正如Orangepill所述,Campaign Monitor已完成了这项工作并provided a chart showing where iframes can be used。他们还建议远离iframe。
未提及的解决方案是拥有一张图片,底部有一个链接,上面写着在网页中查看此消息,这会将用户带到<iframe>
的网页工作