我想在一些服务结束后发送电子邮件,所以我使用php exec()函数来做到这一点
我使用的命令是:exec('(other service commands; /usr/bin/php /var/www/vhosts/domain.com/httpdocs/email.php name@domain.com) > /dev/null &');
email.php包含一个mysql更新和一个mail()函数。它似乎运行良好,因为mysql更新正在发生,但它不发送电子邮件。
如果我通过CLI而不是php exec()运行命令,则会正确发送电子邮件
例如。 /usr/bin/php /var/www/vhosts/domain.com/httpdocs/email.php receiver@domain.com
我还有什么其他方法可以解决这个问题吗?
答案 0 :(得分:0)
我终于明白了!
显然,CLI的php.ini(sendmail_path
)上的/etc/php5/cli/php.ini
被注释掉了。
我取消注释,将其设置为/usr/sbin/sendmail -t -i
,重新启动apache,现在它正常运行!