“不允许中继访问”在 Swift Mailer 中


'No Relay Access Allowed' in Swift Mailer

我最近将我的服务器转移到VPS,现在电子邮件功能不适用于外部电子邮件。以下是我正在使用的设置:

$transport = Swift_SmtpTransport::newInstance('ns1.example.com', 465, 'ssl')
  ->setUsername('testing@example.com')
  ->setPassword('password');
$mailer = Swift_Mailer::newInstance($transport);

我得到的错误是这样的:

SMTP error from remote mail server after initial connection:
host dedrelay.where.example.net [XX.XXX.XXX.XX]: 554
m1plded02-01.prod.mesa1.example.net : DED : 
gWqF1p02c0cB4sG01 : DED : ESMTP
No Relay Access Allowed From XXX.XXX.XXX

我已经尝试过telnet,响应还可以。我尝试了以下方法:

telnet ns1.example.com 465

回应是:

connected to xx.xxx.xxx.xx

我也无法配置我的桌面电子邮件客户端。谁能说出解决方案?任何帮助将不胜感激。

编辑

我什至无法通过服务器的网络邮件发送电子邮件。同样的错误。

您尝试telnet ns1.example.com 465并且它已连接。这表明 SMTP 服务器已启动并正在运行,您的计算机可以访问它。但这不是您所需要的全部。

错误消息No Relay Access Allowed From 123.123.123.123表示SMTP服务器配置为不接受来自此IP地址的电子邮件进行中继,即需要传递到另一台服务器进行传递的电子邮件。

这是一项防滥用措施,这意味着SMTP服务器配置正确。

您的SwiftMailer配置没有任何问题。您使用的任何电子邮件客户端(包括您所说的桌面客户端),答案都是一样的。

您需要联系 SMTP 服务器的系统管理员,并要求他们允许您的 IP 地址使用其 SMTP 服务器作为中继。如果他们是您的ISP,服务器也可能仅在身份验证后才允许中继:您有一个用户名/密码对(您用于阅读电子邮件,例如),您需要使用它才能通过他们的SMTP服务器发送电子邮件。但这只是一个假设(这是它通常的工作方式);你必须问他们确定。