如何在 php 中将 STARTTLS 与 swiftmailer 一起使用?

Erh*_*huz 3 php email smtp swiftmailer laravel

这是我的第一个问题,对我来说如此简单。

\n

如何在 php 中将 STARTTLS 与 swiftmailer 一起使用?

\n

我目前使用的是在 PHP 7.3 上运行的 Laravel 7.x。

\n

我需要连接到 Office365 SMTP 服务器,不幸的是,该服务器仅支持 STARTTLS。\n由于其他公司基础设施,我无法使用 Office365 之外的其他提供商,因此我的选择受到限制。

\n

我的问题是,当我使用 STARTTLS 作为邮件加密并尝试通过 SMTP 服务器连接/发送邮件时,我收到以下错误:

\n
\n

[2020-06-25 11:15:21] stage.ERROR:无法与主机\xc2\xa0smtp.office365.com\xc2\xa0:stream_socket_client()建立连接:无法连接到\xc2\xa0starttls:/ /smtp.office365.com:587\xc2\xa0(无法找到套接字传输“starttls” - 您在配置 PHP 时是否忘记启用它?) {"userId":1,"exception":"[object] (Swift_TransportException(代码:0):无法与主机\xc2\xa0smtp.office365.com\xc2\xa0:stream_socket_client()建立连接:无法连接到\xc2\xa0starttls://smtp.office365.com:587 \xc2\xa0(无法找到套接字传输“starttls” - 您在配置 PHP 时是否忘记启用它?)位于 /home/forge/censoreddomain.com/releases/20200615132510/src/vendor/swiftmailer/swiftmailer/lib /classes/Swift/Transport/StreamBuffer.php:269)

\n
\n

我的 .env 配置邮件部分:

\n
MAIL_DRIVER=smtp\nMAIL_HOST=smtp.office365.com\nMAIL_PORT=587\nMAIL_USERNAME=XXXX@XXXX.se\nMAIL_PASSWORD=XXXXXXXtXVF\nMAIL_ENCRYPTION=starttls\n
Run Code Online (Sandbox Code Playgroud)\n

Das*_*h-T 9

尝试将“MAIL_ENCRYPTION=starttls”更改为“MAIL_ENCRYPTION=tls”

  • 说明:在 swiftmailer 中,`tls` 是 `STARTTLS`,`ssl` 是 `TLS`。请参阅此[问题](https://github.com/swiftmailer/swiftmailer/issues/545) (5认同)