次のように、メールを送信するだけのサーバーがあります。
django/python --> postfix -----> smtp-relay.gmail.com -----> destination
メールを受信した Gmail クライアントを開いて詳細を確認すると、次のように表示されます。security: Standard encryption (TLS) Learn more
現在、from --> gmail の宛先が TLS であると表示されていると思われますsmtp-relay.gmail.com
が、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 サーバーが django/python からのメッセージの受信を記録する別のヘッダーがありますReceived:
が、その送信がマシンから決して送信されないことが保証されている場合 (から への接続::1
) ::1
、その接続でトランスポート セキュリティが採用されているかどうかはほとんど問題になりません。
このようなトレース ヘッダーには、使用される特定のプロトコル バージョンと暗号に関する情報も追加で含めるのが通例です (Google はほとんどの場合、これを実行しているようです)。
メールサーバーが暗号化されていないメールを送信しないことがわかっている場合、排他的に現代のプロバイダにメールを送信するか、中継する全てGoogle へのメール - smtp_tls_security_level
Postfix 設定でこれを強制することを検討してください。 1 つのメッセージを見ると、この特定のインスタンスではすべてが正常に機能したことがわかります。 将来、暗号化されていない送信に自動的にフォールバックしないようにする必要があるかもしれません。