如何驗證從自己的伺服器到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
.我的後綴配置文件有:
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
在您的後綴配置中強制執行該操作。查看一條消息只會告訴您,在這種特定情況下,一切正常。您可能不希望它在將來默默地回退到未加密的送出。