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