Verifique primeiro o sandbox, pois é isso que determina se o envio funciona. Uma nova conta SES começa no sandbox em todas as Regiões e, enquanto lá estiver, o SES só entrega a endereços verificados, domínios verificados e ao seu próprio simulador de caixas de correio. Além disso, existem limites de 200 mensagens por período de 24 horas e uma por segundo.
Verificar um endereço do Email Spam Tester não permite contornar esta restrição. O SES verifica um destinatário enviando-lhe um email com um link e, como os nossos endereços aceitam exatamente uma mensagem antes de serem encerrados, o email de verificação seria a mensagem que esgotaria o endereço. Por isso, na prática, você precisa de acesso de produção na Região a partir da qual envia. A AWS promete uma resposta inicial a esse pedido no prazo de 96 horas.
Como o estado do sandbox é definido por Região, uma conta que esteja em produção em eu-west-1 pode continuar no sandbox em us-east-1. As identidades também são definidas por Região, cada uma com os seus próprios registos DKIM.
Obtenha um endereço e envie uma mensagem
Abra email-spam-tester.com e copie o endereço apresentado. Não precisa de uma conta nem de uma chave de API e tem o formato test-, seguido de vinte caracteres, em t.email-spam-tester.com. Você tem uma hora e uma mensagem, por isso prepare o comando de envio antes de obter o endereço.
A forma mais simples de enviar é através da linha de comandos, adaptada do exemplo da própria AWS na página sobre tenants do SES, sem os parâmetros de tenant e de conjunto de configuração:
aws sesv2 send-email \
--from-email-address "sender@yourdomain.com" \
--destination "ToAddresses=test-xxxxxxxxxxxxxxxxxxxx@t.email-spam-tester.com" \
--content "Simple={Subject={Data='Test Subject',Charset=utf-8},Body={Text={Data='Test email body',Charset=utf-8}}}"
O endereço From tem de ser uma identidade verificada, mesmo em produção. Um corpo apenas com texto como este é suficiente para testar a autenticação e o IP, mas quase nada revela sobre o conteúdo. Para obter um resultado real, envie a mensagem que a sua aplicação envia efetivamente, incluindo a parte HTML e os cabeçalhos. Utilize também o mesmo fluxo de código, quer seja o send_email do boto3, uma biblioteca SMTP ou outra opção. Se os envios de produção utilizarem um conjunto de configuração, adicione também --configuration-set-name aqui, para que o teste seja executado com as mesmas definições.
O teste de colocação na caixa de entrada integra-se no mesmo comando. Adicione as caixas de entrada dos fornecedores a ToAddresses, juntamente com o endereço de teste, e o respetivo marcador aos dados de Subject. Uma única chamada preenche então dois relatórios. O segundo indica a pasta onde a mensagem foi colocada no Gmail, Outlook, Yahoo e noutros fornecedores. Essas caixas de entrada também não estão verificadas, por isso este método também exige acesso de produção.
Também pode utilizar a consola. Abra Configuration > Identities, clique na identidade e selecione Send test email. Escolha Raw se quiser colar uma mensagem MIME completa com os seus próprios cabeçalhos. A AWS descreve a consola como uma ferramenta que normalmente só é utilizada para emails de teste, e a documentação não refere qualquer prefixo de teste nem outra alteração à mensagem. No sandbox, o campo Custom recipient exige um endereço verificado, o que o leva novamente ao problema referido acima.
Como aparece no relatório uma identidade SES nova
Do relatório · Autenticação
- SPFaprovadonão alinhadoO MAIL FROM é um subdomínio de amazonses.com, não do seu domínio.
- DKIMaprovadoalinhadoEasy DKIM assina todas as mensagens com uma chave de 2048 bits no seu domínio.
- DMARCaprovadoPassa com base na assinatura DKIM alinhada, depois de publicar um registo DMARC.
Uma identidade SES predefinida: SPF passa, mas para amazonses.com. Um MAIL FROM personalizado permite alinhá-lo.
DKIM. Easy DKIM é a opção predefinida para identidades de domínio e assina todas as mensagens com uma chave de 2048 bits. A configuração consiste em três registos CNAME com o nome token._domainkey.yourdomain.com, que apontam para token.dkim.<region>.amazonses.com. Se a verificação DKIM falhar, verifique primeiro duas coisas: se a propagação de DNS terminou (a AWS indica que pode demorar até 72 horas) e se o seu fornecedor de DNS acrescentou o domínio ao nome e criou token._domainkey.yourdomain.com.yourdomain.com. Com BYODKIM, publica antes um registo TXT no seu próprio seletor. Durante a mudança entre os dois, o SES pode enviar sem qualquer assinatura, o que o relatório assinala como DKIM em falta. O verificador de DKIM utiliza o token como seletor.
SPF e Return-Path. Por predefinição, o SES utiliza um subdomínio de amazonses.com como MAIL FROM. SPF passa, mas para amazonses.com, por isso o relatório mostra SPF como não alinhado com o seu From. Quando DKIM está alinhado, isto tem pouco impacto (2 pontos na escala de 100 pontos, em vez de 5), e DMARC continua a passar com base em DKIM. Para alinhar também SPF, configure um subdomínio MAIL FROM personalizado com exatamente um registo MX, 10 feedback-smtp.<region>.amazonses.com, e um registo TXT v=spf1 include:amazonses.com ~all. Não escolha um subdomínio que receba email e não inclua aspf=s no seu registo DMARC, porque a AWS indica que o alinhamento SPF com o SES não funciona com uma política SPF estrita.
DMARC. O SES não publica um registo por si. O exemplo da AWS é v=DMARC1;p=quarantine;rua=mailto:my_dmarc_report@example.com. Se ainda ninguém lê os seus relatórios DMARC, começaria com p=none e tornaria a política mais restritiva mais tarde. O verificador de DMARC mostra o que tem configurado, e DMARC fail aborda os problemas mais comuns.
Valores de exemplo. Copie os valores reais da sua conta.
| Nome | Tipo | Valor | Para que serve | Copiar |
|---|---|---|---|---|
| token. | CNAME | token. | Easy DKIM. Três destes, um por token. | |
| mail. | MX | 10 feedback-smtp. | MAIL FROM personalizado. Exatamente um registo MX, num subdomínio que não recebe email. | |
| mail. | TXT | v= | SPF para o MAIL FROM personalizado, para que SPF fique alinhado com o seu From. | |
| _dmarc. | TXT | v= | DMARC, exemplo da AWS. Comece com p=none se ainda ninguém lê os relatórios e não inclua aspf=s. |
List-Unsubscribe. O SES só adiciona List-Unsubscribe e List-Unsubscribe-Post quando envia com ListManagementOptions a apontar para uma lista de contactos e um tópico. Mesmo nesse caso, apenas para mensagens com um único destinatário, apenas com Easy DKIM, e o SES substitui quaisquer cabeçalhos de cancelamento de subscrição que você próprio defina. Tudo o resto é enviado sem quaisquer cabeçalhos de cancelamento de subscrição, o que, no caso de uma newsletter, significa uma verificação List-Unsubscribe falhada e uma verificação de cancelamento com um clique falhada, a menos que você próprio os adicione. Desde março de 2024, a v2 API aceita cabeçalhos personalizados sem MIME em bruto. Adaptados da publicação da AWS sobre o cancelamento com um clique, os dois cabeçalhos têm este aspeto:
"Headers": [
{ "Name": "List-Unsubscribe",
"Value": "<https://yourdomain.com/unsub?address=x&topic=x>, <mailto:unsubscribe@yourdomain.com>" },
{ "Name": "List-Unsubscribe-Post",
"Value": "List-Unsubscribe=One-Click" }
]
O seu endpoint tem depois de processar o POST. As reposições de palavra-passe e os recibos sem cabeçalhos de lista são um caso diferente e, para estes, o relatório assinala o grupo de remetentes em massa como ignorado. Saiba mais sobre o cabeçalho na nossa página sobre List-Unsubscribe.
IPs e listas de bloqueio
As contas novas enviam a partir de IPs partilhados com outros utilizadores do SES, e a AWS recomenda mantê-los, salvo se o seu volume for elevado e regular. O relatório consulta 21 listas de bloqueio para o IP de envio e, nos endereços partilhados, uma ocorrência pertence ao conjunto. Os IPs dedicados estão disponíveis como Standard, que você aquece manualmente, ou Managed, cujo aquecimento é gerido pelo SES. Neste último caso, uma inclusão numa lista está associada aos seus próprios envios. Qualquer IP que encontrar no separador Cabeçalhos pode ser verificado diretamente no verificador de listas de bloqueio.
A AWS também monitoriza a sua conta. As perguntas frequentes sobre aplicação das regras indicam que deve testar com endereços reais que possam receber email, ou com o simulador, para que destinatários inventados não aumentem a taxa de devoluções. A AWS coloca uma conta sob análise quando a taxa de devoluções atinge 5% ou a taxa de reclamações atinge 0,1%.
O plano de correção no final apresenta até oito alterações, cada uma com o registo DNS que deve copiar, quando aplicável. Os pontos junto de cada correção correspondem às penalizações atuais das verificações afetadas. O modelo seleciona e explica as correções. Não lhes atribui uma pontuação. Se não souber o que significa o nome de uma verificação, a documentação explica cada uma das 42.
Referências da AWS
Acesso ao ambiente sandbox e à produçãodocs.aws.amazon.com ↗Easy DKIMdocs.aws.amazon.com ↗MAIL FROM personalizadodocs.aws.amazon.com ↗DMARC com SESdocs.aws.amazon.com ↗Gestão de subscriçõesdocs.aws.amazon.com ↗sesv2 send-emaildocs.aws.amazon.com ↗Perguntas
Posso testar a partir do sandbox do SES?
Não com o nosso endereço. No sandbox, o SES só entrega a destinatários verificados, e verificar o nosso endereço consumiria a única mensagem que este aceita. Solicite acesso de produção para a Região e, entretanto, verifique os seus registos com os verificadores gratuitos de DKIM, SPF e DMARC.
O simulador de caixa de correio do SES fornece as mesmas informações?
Não. Indica como o SES trata uma devolução, uma denúncia de spam ou uma entrega, e é faturado como um envio normal. Não analisa os seus cabeçalhos, autenticação ou conteúdo.
Devo incluir o SES no registo SPF do meu domínio raiz?
Os servidores de receção verificam o SPF em relação ao domínio MAIL FROM, que, por predefinição, é um subdomínio de amazonses.com ou o seu subdomínio MAIL FROM personalizado. O registo SPF do SES deve estar nesse subdomínio e, segundo a página MAIL FROM, não é necessário configurar nada no domínio raiz.