如何将<iframe>标记显示到gmail </iframe>

时间:2013-06-07 05:41:02

标签: php html css html5 codeigniter

我使用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.... 
                    }

2 个答案:

答案 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>的网页工作