自动将HTML电子邮件转换为PDF。思考?

时间:2012-02-03 02:40:49

标签: php email pdf

前几天,一位客户向我提出了一个有趣的请求:自动从HTML电子邮件创建格式化的PDF。基本上,他们发送每晚的时事通讯,并希望在列表中添加一个“机器人”电子邮件地址,将电子邮件转换为格式化的PDF并将该PDF上传到Box.net上的文件夹。这个过程需要通过PHP完成。

一旦我从电子邮件中获取HTML,我认为之后的步骤不会太麻烦(我可能只是使用dompdf将HTML转换为PDF,格式不是任何复杂的事情)我的具体问题是关于检索电子邮件和从中获取HTML的步骤。有没有办法设置一个邮件帐户,每次收到电子邮件时都会运行PHP脚本?如果是这样,我如何通过PHP访问邮箱和/或电子邮件的内容?定期检查邮箱中的新电子邮件会更容易,还是更有意义?

对此的任何想法都将非常感激。

2 个答案:

答案 0 :(得分:1)

我编写了一个名为email2pdf的脚本,它将HTML(和纯文本)电子邮件转换为PDF非常相似。它使用python而不是PHP,旨在与getmail协同工作以实际获取邮件。

README

中的更多信息

(对于轻微的自我推销感到抱歉,但我认为这是相关的)。

答案 1 :(得分:0)

如果不知道您正在使用什么平台,很难知道建议什么。

在Unix和Linux环境中,Fetchmail是从POP或IMAP服务器获取邮件的最爱。一旦Fetchmail提取你的邮件,你就可以将它保存到文件中,通过程序管道等等,然后用各种转换工具从中找出你的自动化。

如果您不想在cron作业中使用fetchmail“轮询”您的邮箱,那么您可以在邮件服务器本身上触发转换。与MTA一样运行SendmailPostfix(或其他类似软件)的Unix或Linux邮件服务器可以使用Procmail作为“本地传递代理”。 Procmail包含一种灵活的语言,可用于识别电子邮件中的模式和“做”事情。如果Procmail正在发送您的邮件,您可以轻松地为其编写“配方”,以识别符合您条件的传入HTML邮件,然后通过转换程序管理HTML部分。并寻找某人,或运行其他程序,或其他什么。

将HTML转换为PS / PDF的实际过程实际上也取决于您未指定的平台。请记住,在Unix环境中从PS转换为PDF是微不足道的,因此如果您发现转换为PS,您可以轻松地将其转换为PDF。查看list of recommendations from w3.org,或者请求为您的平台提供支持。我使用FreeBSD,html2ps-letter存在。