Swiftmailer SMTP传输拒绝本地IP地址

时间:2010-12-06 01:13:19

标签: php swiftmailer

我正在尝试使用Swift_SmtpTransport发送电子邮件,但我收到以下错误:

501 5.5.2< [:: 1]>:Helo命令被拒绝:无效的IP地址

SMTP服务器是一个远程服务器,它可以从我的生产服务器运行,但不能运行我的运行OS X的开发机器。

它也无需抛出异常,而是要求我使用记录器插件找出它无法正常工作的原因。

如何才能使用真实的IP地址?

1 个答案:

答案 0 :(得分: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的一个错误 - 它确实应该为这样的事情抛出异常,而不是仅仅将每个收件人列为“失败”。