Centos下通過SMTP發送郵件失敗解決


前天測試出在64位系統下不能發送激活郵件的bug

打出error_msg:為permission deny

調試搜索了半天,沒有結果;網上主要說的是

fsockopen被關閉啊,用pfsockopen,或者stream_socket_client()來代替

都試過不行;

因為在window下這幾個函數都沒有問題,所以想到是linux的 的問題,這個東東困擾過好幾次了,以后碰到問題請首先想到這個;

既然默認開啟了肯定有他的好處,不能關selinux,就搜索:selinux+smtp

找到了答案,selinux果然是不允許http來連接網絡的,執行如下命令:

setsebool -P httpd_can_network_connect=1

即可發送郵件了,看來得好好看看selinux這個鬼東西了。

詳情參考:

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

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM