我有一个只发送邮件的服务器,如下:
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
.
我的后缀配置文件有:
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,但我不知道如何验证。
您想查看
Received:
收到的邮件的标题,即 Google 跟踪您的邮件从您的 Postfix 服务器传输到第一台 Google 服务器的行。该标头应将协议指定为 ESMTP S - (第二个)S表示安全通道。您的 Postfix 服务器会在另一个
Received:
标头中记录从 django/python 收到的消息,但如果保证该提交永远不会离开您的机器(从::1
到的连接::1
),那么该连接是否使用任何传输安全性应该是无关紧要的.通常,此类跟踪标头还包含有关使用的特定协议版本和密码的信息(Google 似乎大部分时间都这样做)。
如果您知道您的邮件服务器不应该发送未加密的邮件 - 因为您专门将邮件发送给现代提供商,或者您将所有邮件转发给 Google - 请考虑
smtp_tls_security_level
在您的后缀配置中强制执行该操作。查看一条消息只会告诉您,在这种特定情况下,一切正常。您可能不希望它在将来默默地回退到未加密的提交。