Estou tentando usar o Amazon SES como um gateway SMTP para o meu servidor 'preciso' do EC2 Ubuntu, usando diferentes contas SES para diferentes domínios de e-mail de origem. A documentação do postfix parece indicar que isso é possível, mas o SES sempre alega que estou usando as credenciais erradas ("535 Credenciais de Autenticação". Inválido"). As credenciais funcionam se eu direcionar todos os emails por meio da diretiva relayhost para a mesma conta do SES.
Aqui está o que eu tenho.
main.cf (seções relevantes):
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.../...
onde AK ... é o AWSAccessKeyId e 34 ... / ... é o AWSSecretKey.
A mensagem de erro em /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
Existe alguma maneira de ver quais credenciais ele está tentando usar?
-
Atualização: Para depurar, substituí meus mapas regexp por mapas mysql e liguei o log de consultas SQL. Desta forma, posso ver como esses mapas são avaliados. É meio interessante. Primeiro, estou chegando:
SELECT host FROM sender_dependent_relayhost_map WHERE sender='[email protected]'
Se isso retornar localhost: 11111, posso executar o netcat nessa porta e obter uma conexão SMTP de entrada. Então essa parte parece estar funcionando bem.
Então, estou recebendo consultas repetidas do tipo:
SELECT userpass FROM smtp_sasl_password_map WHERE sender=...
primeiro avaliado com '[email protected]', então (se não encontrado) com '@ example.com' (não é algo que eu encontrei nos documentos), e então, surpreendentemente, com o servidor smtp encontrado a partir do anterior Consulta sender_dependent_relayhost_map. e finalmente com '< >' (presumivelmente o padrão global).
Mas se eu retornar 'AK ...: 34 ... / ...' (a credencial do Amazon SES) dessa segunda tabela, ainda recebo o mesmo erro de autenticação da Amazon. Portanto, há progresso, mas ainda não há resolução.