0

我想在某些服务结束后发送一封电子邮件,所以我使用 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

我还应该设置什么来解决这个问题吗?

4

1 回答 1

0

我终于明白了!

显然,sendmail_path在 CLI 的 php.ini ( /etc/php5/cli/php.ini) 上被注释掉了。

我取消了它的注释,将它的值设置为/usr/sbin/sendmail -t -i,重新启动了 apache,现在它可以正常工作了!

于 2012-04-05T13:55:45.307 回答