【问题标题】:Push email to a apache/php server将电子邮件推送到 apache/php 服务器
【发布时间】:2010-11-07 05:05:32
【问题描述】:

我们构建了一个需要不断检查电子邮件的网络服务。基本上,用户向我们发送一封电子邮件,服务器应根据该电子邮件执行操作。我们可以使用 crontab PHP 脚本,通过 POP 每分钟检查一次新消息。但这对 popserver 来说有点冒犯,而且效率不高(1 分钟太长了)。

但是,我已经阅读了有关在移动设备上使用 IMAP 推送电子邮件的信息。就我而言,它不是移动设备,而是网络服务器。

我可以将电子邮件推送到我的网络服务器并让它执行 PHP 脚本吗?我们使用 GMail 作为 POP/SMTP/IMAP 服务器。

EDIT 1 从答案中,我们发现:

  1. 我的网络服务器上必须有一个 24/7 运行的进程(守护进程)检查电子邮件

  2. 此守护进程可以使用以下方式与 Gmail 通信:i) 带有 NOOP coomand 的 POP 或 ii) 带有 IDLE 命令的 IMAP

什么是最好的? POP 还是 IMAP? Google 似乎更愿意使用 IMAP。

我不想过度使用 gmail(他们检查电子邮件的“合理用途”是什么?每 10 秒一次?

【问题讨论】:

  • Jason Punyon 和 Richard Levasseur 的回答都很棒。对此 +2。

标签: php apache smtp gmail imap


【解决方案1】:

有一篇关于 Evolt 的旧(但很棒)文章关于将电子邮件传送到 php 脚本,因此可以获取电子邮件的全部内容并可以对其进行操作。

http://www.evolt.org/article/Incoming_Mail_and_PHP/18/27914/index.html

【讨论】:

    【解决方案2】:

    email_scheduler.c

    int main()
    {
            while(1){
                            sleep(5); // every 5 secs the email_parser.php would get executed.
                            system("/usr/bin/php -q /var/www/html/email_parser.php");
            }
    }
    

    email_parser.php:

    /* 使用任何电子邮件消息解析器 解析像 MIME 这样的电子邮件 基于您的目的的消息解析器 : 参考 : http://www.phpclasses.org/browse/package/3169.html */

    也可以在这里查看more info的相关答案

    【讨论】:

      【解决方案3】:

      我没有使用 IMAP 的经验,但不得不做同样的事情。如果我是你,我会安装 Postfix 并使用管道命令(基本上可以让你运行任意脚本)来调用一个小型 http 客户端来解析电子邮件并将其发送到你的服务器。

      当然,您可以用任何您喜欢的 MTA 替换后缀。关键是:不要实现自己的电子邮件服务器。使用现有的并使用它的钩子将邮件发送到您想要的任何地方,无论它是您想要的。

      【讨论】:

        【解决方案4】:

        如果您想使用后缀作为您的 MTA,您可以将电子邮件地址别名为任何可执行文件,例如 this。在 *nix 机器上设置真的不难......

        【讨论】:

        • 这次我们不会安装任何邮件软件。谢谢。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-09-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-08-13
        • 1970-01-01
        相关资源
        最近更新 更多