如何解决通过 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(摘要)下找到“creation time”(创建时间)。

如果您的 SMTP 用户是在 2019 年 1 月 10 日之前创建的,那么您会收到一条错误,因为请求是使用 AWS Sigv2 签署的。

要解决此问题,请从 SES 控制台创建新的 SMTP 用户,然后替换发送应用程序中的旧 SMTP 用户。您还可以通过转换现有 AWS 凭证从 IAM 用户那里获取 AWS Sigv4 SMTP 用户名和密码。

如果问题仍然存在,或者如果您的 SMTP 用户是在 2019 年 1 月 10 日之后创建的,请向 SES 支持人员提交问题以进一步调查。


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