如何解決透過 SES 傳送電子郵件時發生的 "SMTP server requires a secure connection or the client is not authenticated. The server response was: Authentication required"(SMTP 伺服器需要安全連線或用戶端未通過身分驗證。伺服器回應:是否需要身分驗證) 錯誤?

1 分的閱讀內容
0

我想要使用 Amazon Simple Email Service (SES) 傳送電子郵件。但是,我收到 "SMTP server requires a secure connection or the client is not authenticated. The server response was: Authentication required".(SMTP 伺服器需要安全連線或用戶端未通過身分驗證。伺服器回應:是否需要身分驗證) 錯誤。

簡短描述

此錯誤表示,應用程式連線至 Amazon SES SMTP 介面時,傳送應用程式並未嘗試進行身分驗證。如果 SES API 呼叫請求使用 AWS 第 2 版簽署程序 (SigV2) 而非 AWS 第 4 版簽署程序 (SigV4) 進行簽署,通常會出現此錯誤。

注意:如果您在 2019 年 1 月 10 日之前建立 SMTP 憑證,則您的 SMTP 憑證會使用舊版 AWS SigV2 建立。在該日期之後建立的憑證預設會使用 AWS SigV4。

解決方案

依照下列步驟檢查 SMTP 使用者的建立時間:

  1. 登入 AWS 管理主控台,然後開啟 AWS Identity and Access Management (IAM) 主控台
  2. 在導覽窗格中,選擇 Users (使用者),然後選擇 SMTP 使用者名稱。
  3. 新的頁面即會載入。您可以在 summary (摘要) 下找到「創建時間」。

如果您的 SMTP 使用者在 2019 年 1 月 10 日之前建立,則您會收到錯誤訊息,因為請求是使用 AWS SigV2 簽署的。

若要解決此問題,請從 SES 主控台建立新的 SMTP 使用者,然後從傳送的應用程式中取代舊版 SMTP 使用者。您還可以透過轉換現有的 AWS 憑證,從 IAM 使用者衍生 AWS Sigv4 SMTP 使用者名稱和密碼。

如果問題仍然存在,或者您的 SMTP 使用者在 2019 年 1 月 10 日之後建立,則請透過 SES 支援開立案例以進一步調查。


AWS 官方
AWS 官方已更新 1 年前