我的Postfix安装路由通过Amazon / SES出了什么问题? (smtp_sender_dependent_authentication)

我正在尝试使用Amazon SES作为我的EC2 Ubuntu“精确”服务器的SMTP网关,对不同的原始电子邮件域使用不同的SES帐户。 后缀文档似乎暗示这是可能的,但SES总是声称我使用了错误的凭据(“535身份validation凭据无效”)。 如果我通过relayhost指令将所有电子邮件路由到相同的SES帐户,证书工作。

这是我的。

main.cf(相关部分):

relayhost = sender_dependent_relayhost_maps = regexp:/etc/postfix/sender_dependent_relayhost_map smtp_sender_dependent_authentication = yes smtp_sasl_auth_enable = yes smtp_sasl_security_options = noanonymous smtp_sasl_password_maps = regexp:/etc/postfix/smtp_sasl_password_map smtp_use_tls = yes smtp_tls_security_level = encrypt smtp_tls_note_starttls_offer = yes smtp_tls_CAfile = /etc/ssl/certs/ca-certificates.crt 

sender_dependent_relayhost_map:

 /.*@example\.com/ [email-smtp.us-east-1.amazonaws.com]:25 

smtp_sasl_password_map:

 /.*@example\.com/ AK...:34.../... 

其中AK …是AWSAccessKeyId,34 … / …是AWSSecretKey。

/var/log/mail.log中的错误消息是:

 Aug 20 21:47:39 example postfix/smtp[18496]: DE1E14218D: SASL authentication failed; server email-smtp.us-east-1.amazonaws.com[23.23.139.32] said: 535 Authentication Credentials Invalid 

有什么方法可以看到它试图使用的凭据?

更新:为了debugging,我用mysql映射replace了我的正则expression式映射,并打开了SQL查询日志logging。 这样我可以看到如何评估这些地图。 这很有趣。 首先,我得到:

 SELECT host FROM sender_dependent_relayhost_map WHERE sender='[email protected]' 

如果这返回localhost:11111,我可以在该端口运行netcat,并获得传入的SMTP连接。 所以这部分似乎工作正常。

然后,我得到这个types的重复查询:

 SELECT userpass FROM smtp_sasl_password_map WHERE sender=... 

首先使用“[email protected]”进行评估,然后(如果找不到)使用“@ example.com”(不是我在文档中find的东西)进行评估,然后令人惊讶地使用从之前的sender_dependent_relayhost_map查询中find的smtp服务器。 最后用'<>'(大概是全局默认)。

但是,如果我从第二个表中返回'AK …:34 … / …'(亚马逊SES凭证),我仍然会从亚马逊获得相同的authentication错误。 所以有进展,但还没有解决。

我怀疑正则expression式是失败的。 您可以尝试以下绑定用户:传递给relayhost。

/等/后缀/ sasl_pass

 [email-smtp.us-east-1.amazonaws.com] AKAAAA:AAAAAAAAA 

/etc/posfix/main.cf

 smtp_sasl_password_maps = hash:/etc/postfix/sasl_pass 

你当然需要运行sudo postmap / etc / postfix / sasl_pass(或者你使用的任何文件名。

对于后缀为'AK …:34 … / …'的sasl证书,您需要使用SMTP用户名和密码,而不是AWSAccessKeyId和AWSSecretKey。

请参阅“获取Amazon SES SMTP凭据”, url为http://docs.aws.amazon.com/ses/latest/DeveloperGuide/smtp-credentials.html