mailgun - 如果使用带有 TLS 的安全 SMTP,电子邮件 header 是否会加密?

标签 mailgun nodemailer

我正在使用nodemailermailgun从 Web 应用程序发送交易电子邮件。我在创建 SMTP transport 时设置了 secure=true这意味着:

secure – if true the connection will use TLS when connecting to server. If false (the default) then TLS is used if server supports the STARTTLS extension. In most cases set this value to true if you are connecting to port 465.

对于电子邮件地址确认和密码重置电子邮件,我将 token 作为 X-Email-Token 添加到电子邮件 header 中,以使其更容易测试(可以只从 header 获取值,而不是解析电子邮件的正文)。无法读取邮件正文的邮件服务器能否读取此 header 字段?

最佳答案

Could a mail server that can't read the body of the message read this header field?

误解警报:secure=true 选项和/或使用 SSL(现已过时)或 TLS 来保护电子邮件传输只会保护之间的通信SMTP 客户端和 SMTP 服务器免受该特定连接的连接窃听者的攻击。<​​/p>

  • 接收 SMTP 服务器不一定是最终收件人的电子邮件服务器。
  • 接收 SMTP 服务器能够将邮件转发到另一个 SMTP 服务器,无需使用 TLS。
  • 接收 SMTP 服务器可能是恶意的(例如,如果有人植入欺诈性的 DNS MX 记录),并且可以读取邮件内容并利用其中包含的信息执行一些邪恶的操作。

鉴于此 - TLS 不提供任何类型的“真实”电子邮件加密。 SMTP 仍然相当于在没有信封的明信片上写消息的电子邮件。

打个比方:将 TLS 与 SMTP 结合使用就像您乘坐一辆带有有色 window 的令人毛骨悚然的货车从家里开车到街上的出站邮箱,但您将一张裸露的明信片放入邮箱中 - 这意味着邮政局的任何人 -服务及其他服务仍然可以读取该消息 - 但至少当您将其发送到出站邮箱时,街上没有人可以读取该消息。

关于 headers 和 body 的区别:

MTA(邮件传输代理,即邮件服务器)能够读取邮件正文邮件 header 。在 SMTP 中,它们之间没有真正的区别,而 TLS 对所有这些完全视而不见,因为它只关心保护任意字节流。

TLS 仅提供传输级安全性,即 MTA 主机之间的连接 - 它不会阻止 MTA 读取电子邮件。为此,您需要适当的消息加密(例如 PGP 或 S/MIME)以及收件人的公钥。

固执己见的咆哮:尽管 Google 和其他互联网公司为保护网络安全付出了巨大的努力,但令人惊讶的是却没有真正插入电子邮件安全。对于 Office 365、Gmail、Outlook.com 等主要电子邮件提供商来说,至少提供消息签名并不困难(如果电子邮件通过自己的出站 SMTP 发送,则可以通过提供消息签名轻松完成此操作)服务器和用户具有双因素身份验证)。这些公司还能够建立良好的 PKI 来分发公钥。消息签名几乎可以在一夜之间消除来自受信任域名的垃圾邮件,因此对于我们人类来说,仍然存在这个问题有点尴尬。

关于mailgun - 如果使用带有 TLS 的安全 SMTP,电子邮件 header 是否会加密?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47297728/

相关文章:

javascript - 尝试通过 NodeMailer Mailgun 传输发送 PDF 时出现 400 错误

javascript - MailGun smtp URL

email - 发送回复中引用的原始电子邮件的最佳方法是什么?

javascript - 使用nodemailer发送带有附件和html数据的邮件

node.js - 在nodejs中模拟电子邮件功能

node.js - 在 Nodemailer 中使用 Jade 邮件模板

php - Mailgun 内联图像,它是如何工作的?

ruby-on-rails - Mailgun 帐户注册后很快就被禁用

javascript - Nodemailer Node Express POST 问题 Github 页面 Gmail

node.js - 无法使用 Google 帐户在 Node JS 本地服务器中连接 SMTP 服务器