我有一个PHP脚本,可以向订阅者发送每两周一次的提醒。每次发送电子邮件时,它还会发送一封来自“Cron Daemon”的电子邮件。当我第一次编写脚本时,它没有发送这封电子邮件,但现在确实如此。我对此有几个问题。
这就是电子邮件所说的内容:
Set-Cookie: PHPSESSID=((random letters and numbers here)); path=/
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Content-type: text/html
答案 0 :(得分:1)
Cron读取执行命令的stdout / stderr,如果写入内容,则cron发送电子邮件。
我猜php-executable被编译为“cgi”或“fcgi”,因此它默认会发出这些标题。
要解决这个问题,您显然有三种可能的解决方案:
> /dev/null 2>&1
附加到您的cron命令中。)MAILTO=""
(请参阅this page)。答案 1 :(得分:0)
我的猜测是你的PHP脚本正在向输出呈现内容。如果有任何内容被渲染,cron会将其转发给默认的管理员电子邮件。
有两个解决方案:
1)修复PHP脚本以完全不输出任何内容。这有时比看起来更难,特别是对于非平凡的脚本。
2)防止来自的的cron脚本具有输出。这种方法的缺点是,当脚本失败时,您也不会收到通知。要停止输出,请使用以下内容:
#Before
* * * * * php /path/to/script
#After
* * * * * php /path/to/script > /dev/null 2>&1