我们已经构建了一个需要不断检查电子邮件的Web服务。基本上,用户向我们发送电子邮件,服务器应根据该电子邮件进行操作。我们可以使用crontab PHP脚本,使用POP每分钟检查一次新消息。但这对popserver来说是冒犯性的而且效率不高(1分钟太长)。
但是,我已经阅读了有关在移动设备上使用IMAP的PUSH电子邮件。在我看来,它不是移动设备,而是网络服务器。
我可以将电子邮件发送到我的网络服务器并让它执行PHP脚本吗?我们使用GMail作为POP / SMTP / IMAP服务器。
编辑1 从答案中我们发现:
我的网络服务器上必须有一个24/7运行进程(守护进程)检查电子邮件
此守护程序可以使用以下方式与Gmail通信:i)使用NOOP coomand的POP或ii)使用IDLE命令的IMAP
什么是最好的? POP还是IMAP?谷歌似乎更多地邀请使用IMAP。
我不想过度使用gmail(他们'合理使用'检查电子邮件是什么?每10秒?
答案 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