如何以编程方式捕获电子邮件? (像后人一样)

时间:2010-12-30 00:05:16

标签: php email cron

我需要以编程方式捕获电子邮件以及使用php附加到它们的任何文件。另外运行cron作业是继续检查是否有新电子邮件的唯一方法,还是有办法在新电子邮件到达时自动触发某些代码?谢谢任何帮助表示赞赏!

3 个答案:

答案 0 :(得分:2)

问题的第二部分:如果您运行自己的邮件服务器并希望避免轮询以获取新邮件,那么您可以在/ etc / aliases中添加一个条目,让您的MTA知道转发到您的PHP脚本,像这样:

uploads: "|/usr/bin/php -q /var/flickr/uploads.php"

此条目会告诉您的MTA将uploads@example.com的所有电子邮件都传输到uploads.php。从那里,您可以阅读STDIN,解析MIME消息,并根据需要对其进行处理

(从Cal Henderson的书Building Scalable Websites中偷来。我强烈推荐第6章)

答案 1 :(得分:0)

我有一个应用程序正是这样做的。

  1. 创建一个守护程序(定期执行程序),称为InboxDownloader,它连接到您的收件箱并检查邮件。如果有消息,请让该守护进程下载它们并将它们放入文件夹中以便进一步处理。
  2. 创建另一个守护程序MailProcessor,它会遍历下载的文件并将其解析出来。我采用的方法是使用基于正则表达式的签名来确定到达的消息类型。我有一组类,每个类都注册为此类消息的潜在“处理程序”,如果匹配,则执行处理程序“执行逻辑”方法,并将方法的全部内容传递给它。

答案 2 :(得分:0)

您是否看过Postie对WordPress的处理方式?

另见the Fetchmail tool