问题描述
我正在尝试使用Sendgrid将Scala应用程序(播放框架)迁移到Amazon SES。我在SES中有一个注册域,正在尝试通过SMTP接口发送电子邮件。我浏览了控制台,并生成了一个IAM用户,该用户具有SMTP用户名(看起来像访问密钥)和SMTP密码(看起来像秘密密钥ID)。
我得到535 Authentication Credentials Invalid
。
我通读https://docs.aws.amazon.com/ses/latest/DeveloperGuide/smtp-credentials.html末尾的python脚本,并将秘密访问密钥转换为Amazon SES SMTP密码。如文档所述,将用户名作为访问密钥。
我的一般问题是:
我对用户名和密码格式的理解正确吗?用户名绝对是访问密钥(不是IAM用户或其他用户),并且秘密密钥会被转换吗?
我还尝试了诸如URL编码转换后的密码之类的操作,但仍然无法正常工作。参考:Amazon SES 535 Authentication Credentials Invalid
这是我的配置:
play.mailer {
host=email-smtp.us-east-1.amazonaws.com
port=587
tls=true
ssl=false
auth=true
user="<WHAT_FORMAT_SHOULD_THIS_BE>>" <--this
password="<WHAT_FORMAT_SHOULD_THIS_BE>" <--this
from="EXAMPLE <noreply@example.com>"
}
解决方法
如果您直接从Ses仪表板创建了凭据,则无需转换密码。
应按原样使用。
仅当您要使用现有的访问密钥和秘密密钥对时,才需要进行转换
还请记住:
请勿使用临时AWS凭证派生SMTP凭证。 Amazon SES SMTP界面不支持从临时安全凭证生成的SMTP凭证。