Centos下经过SMTP发送邮件失败解决

前天测试出在64位系统下不能发送激活邮件的bugphp

打出error_msg:为permission denylinux

调试搜索了半天,没有结果;网上主要说的是服务器

fsockopen被关闭啊,用pfsockopen,或者stream_socket_client()来代替网络

都试过不行;socket

由于在window下这几个函数都没有问题,因此想到是linux的 的问题,这个东东困扰过好几回了,之后碰到问题请首先想到这个;函数

既然默认开启了确定有他的好处,不能关selinux,就搜索:selinux+smtp测试

找到了答案,selinux果真是不容许http来链接网络的,执行以下命令:调试

setsebool -P httpd_can_network_connect=1blog

便可发送邮件了,看来得好好看看selinux这个鬼东西了。ci

详情参考:

https://www.vbulletin.com/forum/showthread.php/217997-smtp-mail-and-SElinux-in-enforcing-mode

To allow PHP/Apache to connect to port 25 issue the following commands as root: 
setsebool -P httpd_can_network_connect=1 
To allow PHP mail() to work issue the following command as root: 
setsebool -P httpd_can_sendmail=1

 

今天2012-04-19

又碰到服务器不能发送邮件的问题了,服务器部署到电信机房后。

SMTP Error: Could not connect to SMTP host.

 找了半天没有发现问题所在,重启了httpd,就行了,实在太诡异了,

按理昨天关闭服务器在机房才开的机,httpd也算是重启了的。

先记住,重启httpd可不是神马好方法

 

setsebool -P httpd_can_network_connect 1

SELINUX=disabled

執行這兩條命令之後 再進行測試一下.
第一條:設置httpd能够連接網絡
第二條:關閉SELINUX
相关文章
相关标签/搜索