我管理的 Web 服务器在使用 PHP 发送邮件时遇到问题。此服务器使用 exim4 作为 MTA,并且配置正确。
我可以从 PHP 的 CLI 发送电子邮件,但不能从 Web 发送电子邮件。例如,如果我在命令行上执行“php mailtest.php”,电子邮件就会正确发送,但如果我浏览到 server.com/mailtest.php,mail() 将返回 false,并且电子邮件永远不会发送。exim 主日志中没有任何内容。
有什么建议或我应该寻找的东西吗?
谢谢!
答案1
听起来你在 /etc/php5/ 下有不同版本的 php.ini
debian:/etc/php5# find . | grep php.ini
./cli/php.ini
./apache2/php.ini
检查[邮件功能]指令
答案2
您应该更改您的 PHP 配置以通过 发送电子邮件exim
。
如果您用作Apache2
网络服务器:
; /etc/php5/apache2/conf.d/mail.ini
[mail function]
sendmail_path = /usr/sbin/exim4 -t
mail.add_x_header = On
mail.log = syslog
如果你使用nginx
+ FPM
:
; /etc/php5/fpm/conf.d/mail.ini
[mail function]
sendmail_path = /usr/sbin/exim4 -t
mail.add_x_header = On
mail.log = syslog
然后重新启动服务:
sudo service apache2 restart
或者:
sudo service php5-fpm restart