4

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

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

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

它也不需要抛出异常,而是需要我使用记录器插件来找出它为什么不起作用。

我该怎么做才能让它使用真实的 IP 地址?

4

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

于 2010-12-06T01:18:41.210 回答