如何验证从自己的服务器到 Google 中继 SMTP 服务的电子邮件是否使用 TLS

如何验证从自己的服务器到 Google 中继 SMTP 服务的电子邮件是否使用 TLS

我有一个仅发送邮件的服务器,如下所示:

django/python --> postfix -----> smtp-relay.gmail.com -----> destination

当我打开收到电子邮件的 Gmail 客户端并检查详细信息时,它显示:security: Standard encryption (TLS) Learn more

现在我怀疑它说来自smtp-relay.gmail.com--> gmail 目的地是 TLS,但我担心我正在以纯文本形式从 postfix 发送电子邮件到smtp-relay.gmail.com

我的 postfix 配置文件有: relayhost = smtp-relay.gmail.com:587

但是如果我将其设置为: relayhost = smtp-relay.gmail.com:25

它也有效。

这是我遵循的教程

如果我将 django 设置设置为EMAIL_USE_TLS = True并尝试发送电子邮件,则会失败:

 File "/usr/lib/python3.8/smtplib.py", line 755, in starttls
    raise SMTPNotSupportedError(
smtplib.SMTPNotSupportedError: STARTTLS extension not supported by server.

这让我认为它没有使用 TLS,但我不知道如何验证。

答案1

您需要查看Received:收到邮件时的邮件头,即 Google 跟踪邮件从 Postfix 服务器传输到第一个 Google 服务器的那行。该邮件头应将协议指定为 ESMTP年代- 第二)年代发送安全通道信号。

您的 Postfix 服务器将会有另一个Received:标头,其中记录了从 django/python 收到的消息,但如果保证该提交永远不会离开您的机器(从::1到 的连接::1),则不必担心该连接是否采用了任何传输安全性。

通常,此类跟踪标头还会包含有关所使用的特定协议版本和密码的信息(谷歌似乎大多数时候都会这样做)。

如果你知道你的邮件服务器不应该发送未加密的邮件 - 因为你向现代提供商发送邮件,或者您正在中继全部将您的邮件发送给 Google - 考虑smtp_tls_security_level在您的 postfix 配置中强制执行该操作。查看一条消息只会告诉您在此特定情况下一切正常。您可能不希望它在将来默默地回退到未加密提交。

相关内容