我有一个带有apache的CentOS服务器,并且我的SMTP服务器连接了SSMTP。
如果我尝试从控制台发送电子邮件,它可以正常工作。 " ssmtp ... @ gmail.com"或者"邮件... @ gmail.com"
但是,如果我创建一个PHP脚本来发送电子邮件,它可以在我从控制台执行它时运行(php script.php),但是当我从apache服务器执行它时它不起作用(localhost) /script.php)。
查看apache日志,我看到它无法连接到smtp服务器(日志中没有更多详细信息)。
Apache正在使用" apache"用户以及当我使用root用户从控制台执行ssmtp或类似操作时,我认为系统阻止了apache用户的连接......
一些想法?谢谢!
(我曾尝试使用PHPMailer,但它返回相同的结果)
答案 0 :(得分:1)
最后我解决了我的问题。诀窍在于SELinux的许可。
我执行了这些命令,现在它就像一个魅力:)
setsebool -P httpd_can_network_connect = 1
setsebool -P httpd_can_sendmail = 1