如何将 HTML/CSS 输出作为附件发送?

How to mail HTML/CSS output as attachment?

我为一个后端编码为 PHP 的商业软件套件做出了贡献。我们的客户已提出要求,我们所知道的报告——充满图表、表格、视觉效果——可以通过电子邮件发送。他们会为每个用户安排特定邮件的发送时间,并且会 运行 一份包含他们想要的选项的报告,然后基本上复制输出的内容并邮寄。

我们已经做了类似的事情,但是要教这些报告如何从屏幕到电子邮件是一个非常详尽的过程;浮动的 div 很乱,各种样式被 Outlook 2007 破坏了。

我正在询问如何获取输出并将其保存为电子邮件的附件。那将是他们的报告。目前我们只是直接从 cron-运行 PHP 文件中打印出一封 HTML 电子邮件。

我研究过 PDF 转换器,它们可能无法正常工作;我们可以没有图表,但 PDF 无法正确解释我们的很多样式。理想的产品是 "screenshot" 我们的输出并将其保存为 JPG,如果这样的东西可能存在的话。我的问题基本上是,有谁知道如何通过将输出转换为 JPG 来为我们节省大量工作以获得更好的产品?我知道它必须从浏览器呈现,这可能是一个愚蠢的想法,但希望有人能引导我朝着正确的方向前进。

根据我的个人经验,正如我为我们的平台所做的那样,我们生成 html 作为常规页面,然后通过电子邮件发送,注意使用图像的相对路径,然后使用 PHPMailer 用于通过 SMTP 服务器发送。

我们将报告作为主要邮件正文发送,而不是作为附件发送。

作为额外的提示,我们使用 Javascript 图表库,作为中间步骤,通过 CasperJS 将图表渲染为 PNG,这样我们就可以在 Chrome/Firefox,然后静态呈现这些内容以通过电子邮件发送。