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
相關文章
相關標籤/搜索