2014-10-30 74 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

相关问题