AWS SES 发送邮件 openssl 认证失败

AWS SES 发送邮件 openssl 认证失败

我正在尝试通过 AWS 的 SES 服务从 ubuntu 客户端发送邮件。我正在关注本教程。我已经到了实际发送邮件的部分。我反复检查我使用的是 SES 生成的凭据,而不是 IAM。我反复检查我使用的是根据教程说明创建的这些凭据的 base64 编码字符串。我没有使用配置集,并且已从我的测试电子邮件文件副本中删除了该行。

以下是我看到的输出:

depth=2 C = US, O = Amazon, CN = Amazon Root CA 1
verify return:1
depth=1 C = US, O = Amazon, OU = Server CA 1B, CN = Amazon
verify return:1
depth=0 CN = email-smtp.us-east-1.amazonaws.com
verify return:1
220 email-smtp.amazonaws.com ESMTP SimpleEmailService-d-EUWQVEJ8B EQFr3e36SskrySJu5nG9
250-email-smtp.amazonaws.com
250-8BITMIME
250-AUTH PLAIN LOGIN
250 Ok
334 VXNlcm5hbWU6
334 UGFzc3dvcmQ6
535 Authentication Credentials Invalid
530 Authentication required
503 Error: need MAIL command
503 Error: need MAIL command
500 Error: command not implemented
500 Error: command not implemented
500 Error: command not implemented
500 Error: bad syntax
500 Error: command not implemented
500 Error: bad syntax
221 Bye

Amazon 的错误代码说明只告诉我 530 和 535 是什么。对于 535,它表示“您用于发送电子邮件的应用程序未向 Amazon SES 提供正确的 SMTP 凭证。请注意,您的 SMTP 凭证与您的 AWS 凭证不同。有关更多信息,请参阅获取您的 Amazon SES SMTP 凭证。”如果您不知道凭证无效意味着什么。我猜想 530 的发生是因为凭证无效。

有人能告诉我 334 代码是什么吗?我怀疑答案可能就在这里:

334 VXNlcm5hbWU6
334 UGFzc3dvcmQ6

我起初以为这些可能是我的 Base64 编码字符串的开头,但它们不匹配。我曾尝试使用具有不同用户名和密码的各种 smtp 用户,这两个字符串始终相同。

否则,如果有人知道导致此身份验证失败的原因,我们将不胜感激。

答案1

我在使用我的 macbook 通过 base64 对用户 + 密码进行编码时遇到了问题。总是卡在同一行,就像你一样。然后我使用 amazon linux vm 对它们进行编码,成功了。

除此之外:

  • 检查用户是否具有正确的 IAM 权限
  • 检查请求中是否使用了正确的区域

相关内容