Email

如何驗證從自己的伺服器到Google中繼 SMTP 服務的電子郵件是否使用 TLS

  • August 6, 2021

我有一個只發送郵件的伺服器,如下:

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在您的後綴配置中強制執行該操作。查看一條消息只會告訴您,在這種特定情況下,一切正常。您可能不希望它在將來默默地回退到未加密的送出。

引用自:https://serverfault.com/questions/1073674