【问题标题】:How to programmatically capture emails? (like posterous)如何以编程方式捕获电子邮件? (如后世)
【发布时间】:2011-06-01 08:00:31
【问题描述】:

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

【问题讨论】:

    标签: php email cron


    【解决方案1】:

    你有没有看过 Postie 是如何为 WordPress 做的?

    另见the Fetchmail tool。

    【讨论】:

      【解决方案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 章)

      【讨论】:

      • 这很棒,但我史诗般的失败 Godaddy 网络主机显然不允许我这样做。我应该切换网络主机(如果是的话,切换到什么主机)?或者有没有办法用godaddy做到这一点?
      • 如果您的主机不允许,那么轮询 POP 或 IMAP 可能是您唯一的选择。
      • 我正在考虑只是切换到bluehost.com.. 有人对他们有任何经验吗?.. 有任何其他可以让我这样做的网络主机推荐吗?
      【解决方案3】:

      我有一个应用程序可以做到这一点。

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

      【讨论】:

        猜你喜欢
        • 2010-11-22
        • 1970-01-01
        • 2017-09-18
        • 1970-01-01
        • 1970-01-01
        • 2018-09-03
        • 2017-07-17
        • 2015-06-04
        • 1970-01-01
        相关资源
        最近更新 更多