O Amazon SES é o serviço de e-mail de saída da AWS: barato e fiável para os e-mails que uma aplicação envia (confirmações, avisos, faturas). Mas que o e-mail saia não é o difícil; o difícil é que chegue à caixa de entrada e não ao spam. Para isso o Gmail, o Outlook e companhia exigem três coisas que se demonstram no DNS do seu domínio: DKIM (uma assinatura criptográfica), SPF (que servidores podem enviar em seu nome) e DMARC (o que fazer com o que não cumprir o anterior).
Se o seu domínio está no Route 53, na mesma conta AWS, o SES pode criar boa parte dos registos por si. Mesmo assim convém saber o que está a pôr e porquê.
Antes de começar: o que significa cada coisa
- SES
- Simple Email Service, o serviço da Amazon para que as suas aplicações enviem e-mail (confirmações, avisos, faturas).
- Route 53
- O serviço de DNS da Amazon, isto é, onde se gere para que servidores aponta o seu domínio.
- DNS e registos
- A "lista telefónica" da internet: traduz o seu domínio em endereços e guarda textos de configuração. Cada entrada é um registo, com um nome, um tipo (TXT, CNAME, MX...) e um valor.
- Verificar o domínio
- Demonstrar à Amazon que o domínio é seu, adicionando no seu DNS uns registos que só o dono pode pôr.
- DKIM
- Uma assinatura digital que o SES acrescenta a cada e-mail e que o recetor verifica com uma chave publicada no seu DNS. Demonstra que o e-mail não foi alterado e que sai do seu domínio.
- SPF
- Um registo de texto no seu DNS que diz que servidores têm permissão para enviar e-mail com o seu domínio.
- DMARC
- Outro registo de texto que indica aos recetores o que fazer com os e-mails que não passem o DKIM ou o SPF (nada, quarentena ou rejeição) e para onde lhe enviar relatórios.
- MAIL FROM personalizado
- Um subdomínio seu que o SES usa como remetente técnico, para que as verificações se façam contra o seu domínio e não contra o da Amazon.
- Sandbox
- O modo de testes em que começa toda a conta SES: só permite enviar para endereços verificados. Há um guia à parte para sair dele.
Passo a passo
Escolha a região do SES
O SES funciona por regiões e as identidades verificadas não se partilham entre elas. Escolha uma próxima dos seus utilizadores ou onde já tenha o resto (por exemplo Europa - Irlanda,
eu-west-1) e fique com ela para sempre: a aplicação terá de enviar para essa região.Crie a identidade de domínio
Na consola do SES, Identidades, Criar identidade, tipo Domínio. Escreva o domínio sem "www" (
midominio.com). Na secção de DKIM deixe Easy DKIM com o comprimento de chave que o SES propuser. Se o domínio está no Route 53 nesta conta, verá a caixa para publicar os registos DNS automaticamente: marque-a. Crie a identidade.O SES gera três registos CNAME do tipo
xxxx._domainkey.midominio.com. Com a caixa marcada já estão no Route 53; se não, copie-os e crie-os à mão na zona alojada. A verificação demora desde minutos até algumas horas; a identidade passará a "Verificada" sozinha.Configure um domínio MAIL FROM personalizado (para o SPF)
Por defeito, os e-mails do SES saem com um remetente técnico em
amazonses.com, que é o que o SPF verifica. Para que a verificação se faça contra o seu domínio e o DMARC possa "alinhar", configure um domínio MAIL FROM personalizado: dentro da identidade, separador Domínio MAIL FROM personalizado, Editar, e ponha um subdomínio que não use para mais nada, por exemplocorreo.midominio.com. Escolha que o SES use o valor por defeito de amazonses.com se o MX falhar, para não deixar de enviar por um erro de DNS.O SES pede-lhe dois registos nesse subdomínio (de novo, com o Route 53 pode pô-los sozinho):
Nome Tipo Valor correo.midominio.comMX 10 feedback-smtp.eu-west-1.amazonses.com(troque a região pela sua)correo.midominio.comTXT "v=spf1 include:amazonses.com ~all"Adicione SPF também ao domínio principal
Se envia e-mail a partir de mais sítios (o seu servidor de e-mail, um fornecedor de newsletters), o seu domínio raiz já terá um registo TXT
v=spf1. Adicioneinclude:amazonses.coma esse mesmo registo; nunca crie um segundo TXT que comece por v=spf1, porque dois registos SPF invalidam os dois. Se não tem nenhum, crie-o no Route 53:Nombre: midominio.com Tipo: TXT Valor: "v=spf1 include:amazonses.com ~all"Se além disso usa Google Workspace ou Microsoft 365, o valor levará também o seu
includecorrespondente, separados por espaços.Publique a política DMARC
O DMARC é um registo TXT no subdomínio
_dmarc. Comece em modo de observação (p=none) para que ninguém rejeite o seu e-mail enquanto ajusta, e peça relatórios para um endereço que leia:Nombre: _dmarc.midominio.com Tipo: TXT Valor: "v=DMARC1; p=none; rua=mailto:dmarc@midominio.com"No Route 53: Criar registo, nome
_dmarc, tipo TXT, valor entre aspas. Passadas umas semanas sem surpresas nos relatórios, suba parap=quarantinee depois parap=reject. O Gmail e o Yahoo exigem DMARC a quem envia muito e-mail, por isso não o salte.Verifique e envie um teste
Na identidade do SES deve aparecer tudo a verde: identidade verificada, DKIM correto e MAIL FROM configurado. Envie um e-mail de teste para uma conta Gmail e abra "Mostrar original": deve indicar SPF: PASS, DKIM: PASS e DMARC: PASS. Se ainda está no sandbox do SES, só poderá enviar para endereços verificados; tem o guia para sair do sandbox nesta mesma secção.
O que pode correr mal
O DKIM leva horas em "pendente"
Confirme que os três CNAME estão exatamente como o SES os deu, sem que o painel de DNS tenha acrescentado o domínio duas vezes (xxx._domainkey.midominio.com.midominio.com é o erro típico fora do Route 53). E assegure-se de que os servidores NS do domínio no registador são os da zona do Route 53 que está a editar; se o domínio é gerido noutro sítio, o Route 53 não serve de nada.
O SPF passa mas o DMARC falha
Falta o alinhamento: o SPF foi avaliado contra amazonses.com, não contra o seu domínio, porque não configurou o MAIL FROM personalizado (passo 3). Com o DKIM alinhado costuma bastar para o DMARC passar, mas configure o MAIL FROM na mesma.
O e-mail chega ao spam com tudo em PASS
A autenticação é necessária, não suficiente. Influem o conteúdo, o domínio ser novo, a quantidade de devoluções e queixas. Comece com pouco volume, retire os endereços que devolvem e dê sempre uma forma clara de cancelar a subscrição. E veja a reputação no painel do SES.
Tenho o domínio noutra conta AWS
O SES não poderá publicar os registos sozinho. Copie-os da identidade e crie-os à mão na zona do Route 53 da outra conta. Funciona igual, só que à mão.
No Simplio
No Simplio o ecrã E-mail (SES) mostra os seus domínios por região e diz-lhe que registos faltam (DKIM, SPF, DMARC, MAIL FROM) com o valor exato de cada um. Se o domínio está no Route 53, põe-nos com um botão. Também vê a quota, o enviado, a percentagem de devoluções e queixas, e recebe um aviso se uma identidade deixar de estar verificada.
O mesmo, na AWS e no Simplio
| Na consola da AWS | No Simplio | |
|---|---|---|
| Saber que registos faltam | Comparar o SES com o Route 53 à mão, um a um | O ecrã E-mail diz-lhe o que falta (DKIM, SPF, DMARC, MAIL FROM) com o valor exato |
| Criar os registos | Até 7 registos no Route 53, com nomes compridos que se copiam mal: 30 minutos | Botão "Pôr registos" se o domínio está no Route 53: 1 clique |
| Se deixar de estar verificado | Ninguém avisa até o e-mail falhar | Aviso por e-mail |