台灣最大程式設計社群網站
線上人數
1317
 
會員總數:245964
討論主題:189547
歡迎您免費加入會員
討論區列表 >> Linux / Unix >> 為什麼使用php mail()無法寄送信件
[]  
[我要回覆]
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
為什麼使用php mail()無法寄送信件
價值 : 15 QP  點閱數:7407 回應數:22
樓主

Yu
門外漢
0 4
88 17
發送站內信

請問我Linux主機有裝sendmail
在終端指令使用mail可以收發信件,也可以寄到hotmail gmail這些信箱
修改mail.rc也可以使用外部信箱收發信件

在php上使用mail()為什麼信件都無法寄出去?
那台Linux主機沒有申請網域,只有ip,沒辦法測收信
使用pear測試 SMTP設置外部信箱 也是無法寄出 顯示...
Failed to connect to 203.64.215.25:25 [SMTP: Failed to connect socket: Permission denied (code: -1, response: )]
username , password都有設了!!
我用mail外部信箱 smtp也是設置這個ip位址卻可以正常寄送
到底問題出在哪邊 卡了好久

本篇文章發表於2012-10-10 15:47
16樓
回應

那顆爛蔥
捐贈 VP 給 那顆爛蔥 檢舉此回應
嗯.................................
那目前log到底寫了啥?
明明設為透過本機端寄信
總該不會又是看到Failed to connect to 203.64.215.25:25?
還是你的PHP程式裡到底又設定了啥?
有沒有試個簡單sample的PHP程式?
就一行mail(xxxx啥啥啥啥)的就好...
本篇文章回覆於2012-10-25 10:38
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
17樓
作者回應

Yu
檢舉此回應
Linux終端部分我是設本機或是SMTP 203.64.215.25都可以寄
會出現Failed to connect to 203.64.215.25:25
是我執行的PHP程式碼SMTP設定 203.64.215.25
我有試過程式碼改成最簡單的mail(),然後if判斷有沒有寄出,結果是沒有寄出
至於log部份...我不知道是我看錯log還是...
我每次執行mail的PHP程式時,信件不能寄出,但是我在maillog裡面也沒看到有多認何新的訊息
難道是maillog記錄的是終端機部分的mail
但是我終端機寄送都沒任何問題,所以log部分也沒有任何記錄
本篇文章回覆於2012-10-29 15:17
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
18樓
回應

那顆爛蔥
捐贈 VP 給 那顆爛蔥 檢舉此回應
呃....................................................

procmail也沒有?
apache的log也沒寫?
message咧?

看這狀況...我大概也幫不了你 Orz
或許重新灌一台還比較省事??
本篇文章回覆於2012-10-30 11:13
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
19樓
作者回應

Yu
檢舉此回應
我看log的位子是在/var/log/下
還是有其他地方也有可能有 ?
對Linux真的很不熟 -_-""
本篇文章回覆於2012-10-30 15:06
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
20樓
回應

towns
捐贈 VP 給 towns 檢舉此回應
towns對於程式並不熟,但可以提供幾個方向

1. 在終端指令使用mail可以收發信件,也可以寄到hotmail gmail這些信箱
修改mail.rc也可以使用外部信箱收發信件
也就是說本機發信是正常的,外部也可以使用本機發信

2. 203.64.215.25
這個IP就是你用來收發信的主機,對嗎?

3. 在php上使用mail()為什麼信件都無法寄出去?
使用pear測試 SMTP設置外部信箱 也是無法寄出 顯示...
Failed to connect to 203.64.215.25:25 [SMTP: Failed to connect socket: Permission denied (code: -1, response: )]
感覺上是權限問題,PHP程式會使用apache帳號權限,是否有資料匣權限不足的問題,或是如蔥大說的Selinxu造成的問題,試試吧!
本篇文章回覆於2012-10-30 17:33
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
21樓
作者回應

Yu
檢舉此回應
回應towns大

第一點是這樣的沒錯,Linux本機是可以發信的也可以指定外部發信
203.64.215.25這個是用來測試發信的外部smtp
那台Linux本機IP是203.64.216.13
至於第三點提到得我有點不太清楚,我只知道linux使用者是使用權限最高進行操作
如果是關於權限的問題要怎麼把apache群組的權限也能夠正常mail?
而且我發現一件事,就是我在該主機架的購物車網站(osc、twe)
就算設定值都造著說明或是教學正常設定了,也沒辦法寄信出去(電子報、顧客下訂單後的訂單寄送到管理者信箱皆無法收發)
本篇文章回覆於2012-10-30 21:55
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
22樓
回應

Qinghua
檢舉此回應
"sendmail"沒有"設Smart Relay就好 --> 這是sendmail.cf的嗎 是找smart部分有沒有設到Relay?"<-------sendmail的relay設定是在/etc/mail/access中......
本篇文章回覆於2013-11-02 13:21
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   

回覆
如要回應,請先登入.