首页 > 解决方案 > 结合端口 587 和 SSL 是否安全?

问题描述

对于注册系统,我需要向未来的员工发送包含私人信息的电子邮件。当我第一次使用 PHPMailer 设置这个系统时,我习惯了以下设置:

$mail->Port = 587;
$mail->SMTPSecure = "tls";

但是,我工作的公司已经改变了他们的邮件系统,现在让我的系统正常工作的唯一方法是使用以下设置:

$mail->Port = 587; //or 465
$mail->SMTPSecure = "ssl";

我读到 SSL 已过时且不推荐使用,所以我仍然能够安全地发送消息吗?

标签: sslsmtpphpmailer

解决方案


我读到 SSL 已过时且不推荐使用,所以我仍然能够安全地发送消息吗?

在这种情况下,SSL 的含义不是 SSL 与 TLS,而是使用 STARTTLS 命令的隐式 SSL/TLS 与显式 SSL/TLS。

$mail->SMTPSecure = "ssl";

这意味着使用隐式 SSL/TLS,即创建 TCP 连接并立即升级到 SSL/TLS。这适用于smtps,即端口465。

$mail->SMTPSecure = "tls";

这意味着使用显式 SSL/TLS,即创建 TCP 连接,执行一些普通命令,并且仅在 STARTTLS 命令之后升级到 SSL/TLS。这适用于端口 25 和 587。

对于注册系统,我需要向未来的员工发送包含私人信息的电子邮件。

两种方式都可以保护发件人与第一邮件服务器之间的通信。这些都不能保护发送者和最终接收者之间的通信。单独的 SMTP 不适合这种情况,您需要 PGP 或 S/MIME 来实现这一点,包括密钥的必要基础设施。


推荐阅读