我正在尝试使用Swift_SmtpTransport发送电子邮件,但我收到以下错误:
501 5.5.2< [:: 1]>:Helo命令被拒绝:无效的IP地址
SMTP服务器是一个远程服务器,它可以从我的生产服务器运行,但不能运行我的运行OS X的开发机器。
它也无需抛出异常,而是要求我使用记录器插件找出它无法正常工作的原因。
如何才能使用真实的IP地址?
答案 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的一个错误 - 它确实应该为这样的事情抛出异常,而不是仅仅将每个收件人列为“失败”。