将电子邮件推送到apache / php服务器

时间:2009-07-01 02:37:25

标签: php apache smtp gmail imap

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

但是,我已经阅读了有关在移动设备上使用IMAP的PUSH电子邮件。在我看来,它不是移动设备,而是网络服务器。

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

编辑1 从答案中我们发现:

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

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

  3. 什么是最好的? POP还是IMAP?谷歌似乎更多地邀请使用IMAP。

    我不想过度使用gmail(他们'合理使用'检查电子邮件是什么?每10秒?

4 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:2)

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

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

答案 2 :(得分: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 :(得分:0)

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

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