我想要使用 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 使用者的建立時間:
- 登入 AWS 管理主控台,然後開啟 AWS Identity and Access Management (IAM) 主控台。
- 在導覽窗格中,選擇 Users (使用者),然後選擇 SMTP 使用者名稱。
- 新的頁面即會載入。您可以在 summary (摘要) 下找到「創建時間」。
如果您的 SMTP 使用者在 2019 年 1 月 10 日之前建立,則您會收到錯誤訊息,因為請求是使用 AWS SigV2 簽署的。
若要解決此問題,請從 SES 主控台建立新的 SMTP 使用者,然後從傳送的應用程式中取代舊版 SMTP 使用者。您還可以透過轉換現有的 AWS 憑證,從 IAM 使用者衍生 AWS Sigv4 SMTP 使用者名稱和密碼。
如果問題仍然存在,或者您的 SMTP 使用者在 2019 年 1 月 10 日之後建立,則請透過 SES 支援開立案例以進一步調查。