Swiftmailer SMTP传输拒绝本地IP地址。

4
我正在尝试使用Swift_SmtpTransport发送电子邮件,但是我遇到了以下错误:
501 5.5.2 <[::1]>:Helo命令被拒绝:无效的IP地址
SMTP服务器是远程服务器,它可以从我的生产服务器工作,但不能从运行OS X的开发机器上工作。
它也不会抛出异常,而是要求我使用日志记录插件找出原因。
我该怎么做才能让它使用真实的IP地址?
1个回答

4

我在代码中进行了一些探索,找到了答案。

配置SMTP传输时,需要调用setLocalDomain()函数。在使用OS X上的PHP时,默认为“::1”,但远程服务器会拒绝该地址。我刚刚在我的开发配置中添加了一行来设置它:

$transport = Swift_SmtpTransport::newInstance('mail.pantsburger.com', 587);
if (SITE_ENV == SITE_ENV_DEV) {
    $transport->setLocalDomain('[127.0.0.1]');
}

我认为这也是Swiftmailer的一个bug - 它应该抛出异常来处理这样的情况,而不是只将每个收件人列为“失败”。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接