我想使用 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(摘要)下找到“creation time”(创建时间)。
如果您的 SMTP 用户是在 2019 年 1 月 10 日之前创建的,那么您会收到一条错误,因为请求是使用 AWS Sigv2 签署的。
要解决此问题,请从 SES 控制台创建新的 SMTP 用户,然后替换发送应用程序中的旧 SMTP 用户。您还可以通过转换现有 AWS 凭证从 IAM 用户那里获取 AWS Sigv4 SMTP 用户名和密码。
如果问题仍然存在,或者如果您的 SMTP 用户是在 2019 年 1 月 10 日之后创建的,请向 SES 支持人员提交问题以进一步调查。