代码之家  ›  专栏  ›  技术社区  ›  Florian Chrometz

如何使用在线托管的html电子邮件签名?

  •  -1
  • Florian Chrometz  · 技术社区  · 10 年前

    对于我的电子邮件签名,我希望使用通过PHP脚本生成的托管HTML代码,因为我可能希望更改签名信息,我真的希望托管解决方案确保不仅将来的邮件,而且发送的邮件都具有“新”签名。

    我在tld.com/signature后面有一个PHP脚本/my@mail.com“(yes,no.php结束)正在等待调用。如果我打开该域,它将输出有效的HTML代码。

    但是我如何将输出作为html签名嵌入到邮件中呢? Iframes 不是一种选择,因为他们不在任何地方工作。 Html img 标记不起作用,因为该url不输出图像。

    有什么想法吗?:-)-谢谢

    1 回复  |  直到 10 年前
        1
  •  2
  •   rcbevans    10 年前

    据我所知,image和iframe是实现这一点的唯一方法,尽管您也可以使用动态css;无论哪种方式,您的签名生成API都需要更改,或者至少需要包装。

    一篇博客文章 here 详细介绍了作者如何在用户的Facebook墙上发布动态分数。

    这是他们使用的工作流:

    PHP HTML -> Image

    由于分数必须是动态的,所以他们所做的就是创建一个API来获取HTML内容的快照图像,然后客户端可以显示该图像。

    他们创建了一个API端点

    1. 查询得分HTML生成器端点(在您的情况下是签名生成),以生成您希望客户端显示的HTML。

    2. 使用 HTML2PDF PHP 5.2的实用程序。

    3. 将PDF渲染为图像,然后可以使用 PHP::ImageMagick .

    他们使用以下代码执行此操作:

    $html2pdf = new HTML2PDF('P', 'A4');
    $html2pdf->writeHTML($html_content);
    $file = $html2pdf->Output('temp.pdf','F');
    
    $im = new imagick('temp.pdf');
    $im->setImageFormat( "jpg" );
    $img_name = time().'.jpg';
    $im->setSize(800,600);
    $im->writeImage($img_name);
    $im->clear();
    $im->destroy();
    

    然后,该API返回的图像可以被呈现为图像标记,以显示给客户端。有此工作流的演示可用 here .