Amazon SES凭证格式-将Scala应用程序Play框架从Sendgrid迁移到SES

问题描述

我正在尝试使用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凭证。