我有一个自定义的应用程序,它依靠cron作业每5分钟检查一次新电子邮件。如果有新的电子邮件,它会执行一个操作。我想要做的是在新电子邮件到达时启动回调,然后执行操作。在新电子邮件上的smtp回调
我可以将cron作业设置为1分钟间隔(目前设置为5分钟),但这看起来像是浪费资源。该应用程序是建立在PHP和任何帮助将不胜感激,我只是不知道我应该看看他们的时刻。
中号
我有一个自定义的应用程序,它依靠cron作业每5分钟检查一次新电子邮件。如果有新的电子邮件,它会执行一个操作。我想要做的是在新电子邮件到达时启动回调,然后执行操作。在新电子邮件上的smtp回调
我可以将cron作业设置为1分钟间隔(目前设置为5分钟),但这看起来像是浪费资源。该应用程序是建立在PHP和任何帮助将不胜感激,我只是不知道我应该看看他们的时刻。
中号
非常基本的邮件管道脚本:
#!/usr/bin/php -q
<?php
// read from stdin
$fd = fopen("php://stdin","r");
$email = "";
while (!feof($fd)){
$email .= fread($fd,1024);
}
fclose($fd);
?>
你$电子邮件做什么,取决于你需要什么
所有这些,不妨只是''email = file_get_contents('php:// stdin') '。 –
我从脚本中删除了代码,其中一个进程流,但当然你是正确的。但它的PHP有十几种方法可以做任何事情 – 2011-08-30 20:41:44
您可以使用.forward将电子邮件直接发送到应用程序,该应用程序将删除cron作业要求。但是你必须提供这个回调应该做的更多细节。 –
请参阅http://stackoverflow.com/questions/7028686/capture-and-manage-email-data-with-php/7028828#7028828了解从何处开始的一些信息。您可以指示您的MTA(sendmail/postfix)将邮件传递到PHP脚本的管道中 –
将新邮件传递给脚本,请跳过cron作业 – 2011-08-30 20:29:12