【发布时间】:2022-01-24 20:50:53
【问题描述】:
我目前正在使用以下代码使用 SwiftMailer,没有任何问题:
$transport = Swift_SmtpTransport::newInstance('inboundsmtp.XXXX.com', 25);
$mailer = Swift_Mailer::newInstance($transport);
我不确定身份验证是如何工作的,除了它与服务器绑定 - 即服务器和/或服务帐户在交换服务器上具有权限。
无论如何,上面的代码都可以,但是如果我在 Symfony Mailer 中尝试:
$mailer = new Mailer(Transport::fromDsn('smtp://inboundsmtp.XXXX.com:25'));
我收到以下错误:
Uncaught Symfony\Component\Mailer\Exception\TransportException: Unable to connect with STARTTLS
经过反复试验,我确实发现这是可行的:
$mailer = new Mailer(Transport::fromDsn('smtp://webmail.XXXX.com:25'));
除非我尝试向外部地址发送电子邮件,否则我会收到此错误:
Expected response code "250/251/252" but got code "550", with message "550 5.7.54 SMTP; Unable to relay recipient in non-accepted domain"
有什么方法可以配置 Mailer 以使用 inboundsmtp.XXXX.com?从错误(STARTTLS)中可以看出它正在尝试使用 TLS——也许这就是问题所在。有没有办法强迫它不要?我发现 Mailer 的文档远没有 SwiftMailer 那样清晰
任何帮助将不胜感激
【问题讨论】:
-
您需要联系管理您正在使用的 smtp 服务器(“webmail.XXXX.com”)的任何人,并告诉他们您希望从 inboundsmtp.XXXX.com 域进行中继并遵循他们的建议。他们可能会直截了当地说你不能,他们可能会配置他们的服务器以允许这样做,他们可能会给你一组特殊的凭据,你可以使用。
标签: php symfony email smtp dsn