我有一個只發送郵件的伺服器,如下:
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,但我不知道如何驗證。
答案1
您想要查看Received:
收到的郵件標頭,也就是 Google 追蹤您的郵件從 Postfix 伺服器傳輸到第一個 Google 伺服器的行。該標頭應將協定指定為 ESMTPS- 第二)S發出安全通道訊號。
將會有另一個Received:
標頭,您的 Postfix 伺服器會在其中記錄從 django/python 收到的訊息,但如果保證該提交永遠不會離開您的電腦(從::1
到 的連接::1
),則無需擔心該連接是否使用任何傳輸安全性。
通常,此類追蹤標頭還包含有關所使用的特定協議版本和密碼的資訊(Google 似乎大多數時候都是這樣做的)。
如果您知道您的郵件伺服器不應該發送未加密的郵件 - 因為您只向現代提供者發送郵件,或者您正在中繼全部您傳送給 Google 的郵件 - 考慮透過smtp_tls_security_level
您的 postfix 設定強制執行該操作。查看一則訊息只會告訴您,在這個特定實例中,一切正常。您可能不希望它將來默默地回退到未加密的提交。