#1726·QloApps

错误: SMTP TLS 加密强制在端口 587 上使用 ssl:// 连接(STARTTLS 失败)

作者: varunchaturvedi-atishaylimited创建于 2026年6月1日更新于 2026年6月24日

描述 当在 Admin > 高级参数 > 电子邮件中选择 **TLS** 作为 SMTP 加密方法时,QloApps 会错误地强制使用直接的 SSL 连接 (ssl://),而不是使用 STARTTLS。这会导致在端口 587 上的连接失败,出现如下错误: - "错误的版本号" - "SSL 例程:错误的版本号" 根本原因 在 `classes/Mail.php` 中,`$isTls` 变量被设置为 `true`,适用于任何加密方式,除非为 "off"。然而,在 Symfony Mailer 的 `EsmtpTransport` 中,如果将 `true` 传递给 `$tls` 则会强制使用直接的 SSL/SMTPS 连接 (ssl://),这对于端口 465 才是正确的。对于使用 STARTTLS 的端口 587,`$isTls` 必须设置为 `false`,这样 EsmtpTransport 就可以启动一个未加密的连接,并通过 STARTTLS 自动升级。 **受影响的代码 (classes/Mail.php ~行 145 和 ~行 504):**

内容来源: Qloapps/QloApps