2014-10-30 82 views
0

我無法通過sendmail在我的PHP/Apache docker容器上發送電子郵件。我想知道如果有人有一個簡單,直接的解決方案。我不是任何系統/服務器專家,我的smtp/sendmail專業知識也同樣令人沮喪。先謝謝您的幫助。Docker PHP/Apache容器 - 嘗試發送郵件時Sendmail 553錯誤「發件人地址域不存在」

下面是我recieiving錯誤:

sendmail: 553 5.1.8 <[email protected]>... Domain of sender address [email protected] does not exist 

顯然Apache是​​我的用戶,而這些東西右邊是我的搬運工集裝箱ID。在傳遞的pHp Mail參數中有一個「From:」標題值,所以不知道爲什麼它默認爲這樣。

根據以下評論的要求,我添加了正在使用的「郵件」功能。我可以確認這個函數中有數據,特別是包含From地址的「$ this-> headers」。

應該注意的是,我在非集裝箱環境中運行完全相同的代碼,並且電子郵件發送得很好,所以我認爲這是一個容器配置問題。這些是我修改過的php.ini的區域。有什麼我應該找的?

[mail function] 
; For Win32 only. 
; http://php.net/smtp 
SMTP = localhost 
; http://php.net/smtp-port 
smtp_port = 25 

我改變「本地主機」在我的非集裝箱環境列出的SMTP服務器,在容器中重新啓動Apache的,但仍然收到上述錯誤信息。

我能夠通過telnet使用下面評論中列出的參考(謝謝@ mark91)連接到我的外部SMTP服務器。這是我的輸出/抄本。我應該提到我的電子郵件從未實際收到,但是(我將自己列爲收件人)。我用*******的屏蔽了信息

telnet smtp.service.******* 25 
Trying *******... 
Connected to *******. 
Escape character is '^]'. 
220 ******* ESMTP smtp.service Fri, 31 Oct 2014 14:29:16 -0400 
HELO ******* 
250 ******* Hello [*******], pleased to meet you 
MAIL FROM: ******* 
250 2.1.0 *******... Sender ok 
RCPT TO: ******* 
250 2.1.5 *******... Recipient ok 
DATA 
354 Enter mail, end with "." on a line by itself 
Hello 
. 
250 2.0.0 s9VITGpm030795 Message accepted for delivery 
+0

該ID也用作容器。你並沒有在這裏處理Docker問題,而是遇到了PHP問題。您應該發佈結束該電子郵件的代碼。 – 2014-10-30 22:01:18

回答

0

你是怎麼用PHP發送這封電子郵件的?至少,您可以正確配置您的php.ini文件,以便將smtp服務器設置爲正確的值。此外,如果您使用的是PHP郵件功能,則應該在$ header參數中包含「From:[email protected] \ r \ n」的字符串...

+0

嗨,謝謝你的回覆。我正在使用PHP郵件功能,並且有一個傳入此函數的「From:」值。我的php.ini的SMTP服務器設置與我看起來工作的另一個環境相同,這就是爲什麼我懷疑我的docker base容器配置存在問題,但作爲相對noob ...我不確定是什麼別的嘗試。 – daniel9x 2014-10-31 13:46:38

+0

你可以嘗試從容器telnet到你的smtp服務器的25端口併發送郵件嗎?在這種情況下會發生什麼? – mgaido 2014-10-31 15:52:37

+0

是的,如果我嘗試通過命令行發送測試電子郵件時,我在泊塢窗容器中出現同樣的錯誤。很明顯,我沒有在我的容器中正確配置sendmail。我不確定如何telnet到端口25.你能分享一個例子嗎? – daniel9x 2014-10-31 15:59:57

相關問題