2010-12-06 117 views
4

我试图使用Swift_SmtpTransport发送电子邮件,但我发现了以下错误:Swiftmailer SMTP传输拒绝本地IP地址

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

SMTP服务器是远程服务器,它从我的生产服务器的作品,而不是从我的机器,这是运行OS X.

它也不会刻意去抛出异常,相反,它需要我使用记录器插件来查明它为什么不起作用。

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

回答

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