Uma newsletter criada em Single Sends e uma redefinição de senha enviada por /v3/mail/send podem sair da mesma conta do SendGrid e ainda chegar como e-mails bem diferentes, o que importa em um teste de spam. Marketing Campaigns sempre tenta adicionar cabeçalhos de cancelamento de inscrição, enquanto a API só os adiciona se você solicitar. Portanto, decida qual dos dois você está testando antes de enviar qualquer coisa.
O recebimento funciona da mesma forma para ambos. O Email Spam Tester fornece um endereço temporário, sem exigir uma conta. Apenas a primeira mensagem que chegar dentro de uma hora será considerada. Ela receberá um relatório que abrange autenticação, vereditos do SpamAssassin e do Rspamd, conteúdo, as regras para remetentes em massa definidas pelo Gmail e pelo Yahoo e 21 listas de bloqueio consultadas com seu IP de envio.
Single Sends: o botão de teste e seu prefixo
O teste integrado fica em Marketing > Single Sends. Abra o Single Send, localize Test Your Email, digite o endereço de teste e clique em Send Test Message. O SendGrid exige um remetente e um assunto antes de permitir o teste. Se o assunto contiver Handlebars, você também precisará preencher Test Data. No envio, o SendGrid adiciona Test - ao início do assunto.
Para o envio real, envie o Single Send para uma lista. Single Sends são enviados para listas ou segmentos, então crie uma lista que tenha o endereço de teste como único contato e selecione-a em Recipients. Assim, os cabeçalhos, o link de cancelamento de inscrição e os links rastreados serão os mesmos que um assinante recebe. Se você também fez o teste de entrega na caixa de entrada, pode adicionar a essa lista as caixas de entrada dos provedores usadas no teste.
A API e o SMTP: um comando curl
Adaptado do exemplo de introdução do SendGrid, com o endereço de teste como destinatário:
curl --request POST \
--url https://api.sendgrid.com/v3/mail/send \
--header 'Authorization: Bearer <<YOUR_API_KEY>>' \
--header 'Content-Type: application/json' \
--data '{"personalizations":[{"to":[{"email":"test-xxxxxxxxxxxxxxxxxxxx@t.email-spam-tester.com"}],"subject":"Hello, World!"}],"content":[{"type":"text/plain","value":"Heya!"}],"from":{"email":"you@yourdomain.com","name":"Your Name"}}'
Quando o teste de entrega na caixa de entrada está ativado, as caixas de entrada dos seus provedores entram no mesmo array to, e o marcador entra em subject. Assim, uma única solicitação também informa em qual pasta Gmail, Outlook, Yahoo e outros provedores colocaram o e-mail.
Insira seu próprio endereço de teste e um remetente que o SendGrid tenha verificado, por meio da verificação de remetente único ou da autenticação de domínio. Melhor ainda, envie a mensagem que seu aplicativo realmente envia, com o HTML real, porque as verificações de conteúdo avaliarão o que está no corpo.
Se seu aplicativo usa SMTP, nada muda além do transporte. O host é smtp.sendgrid.net, o nome de usuário é literalmente a string apikey (não sua chave), e o SSL usa a porta 465.
Também existe um endpoint de envio de teste, POST /v3/marketing/test/send_email. Ele aceita até 10 endereços, mas funciona apenas com Dynamic Transactional Templates. Portanto, para a maioria dos e-mails enviados por API, a chamada Mail Send simples acima é o teste mais fiel.
Os cabeçalhos de cancelamento dependem do caminho escolhido
Marketing Campaigns tenta adicionar cabeçalhos List-Unsubscribe sempre. E-mails enviados pela API ou por SMTP só recebem esses cabeçalhos quando Subscription Tracking está ativado em Settings > Tracking. Nesse caso, SendGrid insere List-Unsubscribe com um link HTTPS e List-Unsubscribe-Post: List-Unsubscribe=One-Click.
Sem Subscription Tracking, você mesmo adiciona os cabeçalhos à solicitação:
"headers": {
"List-Unsubscribe-Post": "List-Unsubscribe=One-Click",
"List-Unsubscribe": "<mailto:unsubscribe@yourdomain.com>, <https://yourdomain.com/unsubscribe>"
}
SendGrid exige tanto a parte mailto quanto a https e alerta para não cancelar a inscrição de ninguém por meio de um simples GET nesse link. Tenha cuidado ao copiar o artigo de suporte da SendGrid sobre esses cabeçalhos. O segundo exemplo define List-Unsubscribe-Post como URLs, o que está errado. O valor é sempre List-Unsubscribe=One-Click. Nossa página de correção do List-Unsubscribe contém o restante.
Se a mensagem for uma redefinição de senha ou um recibo e não tiver cabeçalhos de lista, o relatório marcará o grupo de regras para remetentes em massa como ignorado, em vez de reprová-lo. Uma newsletter enviada pela API não recebe essa exceção.
Como interpretar os resultados de autenticação
Em uma conta sem autenticação de domínio, os destinatários veem "via sendgrid.net" depois do seu endereço From, e a documentação do SendGrid informa que a autenticação de domínio remove essa indicação. O relatório vai além dessa indicação. Verifique as linhas de alinhamento de DKIM e SPF. Se a assinatura ou o caminho de retorno pertencer a um domínio do SendGrid, e não ao seu, o DMARC não poderá ser aprovado para seu endereço From, e o plano deverá orientar você a configurar a autenticação de domínio. Enviar usando um endereço gmail.com ou yahoo.com no campo From é ainda pior. A página de DMARC do SendGrid informa que SPF e DKIM falham nesses casos, e o próprio console avisa que essas mensagens podem falhar em uma verificação de DMARC.
A autenticação de domínio fica em Settings > Sender Authentication. Com a segurança automatizada ativada, que é a configuração padrão, o SendGrid fornece quatro registros:
- um CNAME em
em[0000], que cobre o SPF e se torna seu caminho de retorno; - CNAMEs em
s1._domainkeyes2._domainkeypara DKIM; - um TXT em
_dmarccomv=DMARC1; p=none;.
Valores de exemplo. Copie os valores reais da sua conta.
| Nome | Tipo | Valor | Para que serve | Copiar |
|---|---|---|---|---|
| Segurança automatizada ativada (padrão) | ||||
| em[0000] | CNAME | O destino fornecido na sua conta | SPF e o caminho de retorno. | |
| s1. | CNAME | O destino fornecido na sua conta | DKIM. | |
| s2. | CNAME | O destino fornecido na sua conta | DKIM, o segundo seletor. | |
| _dmarc | TXT | v= | DMARC. | |
| Segurança automatizada desativada | ||||
| em[0000] | MX | O host fornecido na sua conta | O caminho de retorno. | |
| em[0000] | TXT | v= | SPF, que você gerencia por conta própria. | |
| m1. | TXT | A chave fornecida na sua conta | DKIM. | |
Com a segurança automatizada desativada, você recebe um MX e um TXT de SPF (v=spf1 include:sendgrid.net ~all) em em[0000], além de um TXT de DKIM em m1._domainkey, e gerencia o registro SPF por conta própria. Se o seu provedor de DNS rejeitar nomes de CNAME que contenham _, essa será a única opção. E, se outro serviço já usar o seletor s, o SendGrid permite que você escolha um seletor personalizado. Verifique o resultado com o verificador de DKIM (seletor s1) e o verificador de SPF, que também conta as consultas DNS caso seu registro SPF esteja ficando sobrecarregado.
Links, IPs e o restante do relatório
O rastreamento de cliques reescreve todos os links. Se o texto do link for uma URL, o endereço visível e o destino real deixam de coincidir, e a verificação de incompatibilidade de links do relatório vai sinalizar isso. A página de entregabilidade do SendGrid aponta o mesmo problema. Use palavras como texto do link ou configure o link branding para que os links rastreados passem pelo seu próprio domínio, que deve corresponder ao seu domínio From.
Os planos Trial e Essentials enviam por pools de IPs compartilhados que, segundo o SendGrid, podem mudar sem aviso prévio se a sua reputação mudar. Por isso, a inclusão de um deles em uma lista de bloqueio afeta todos nesse pool. O verificador de listas de bloqueio permite consultar o IP novamente mais tarde. O DNS reverso só pode ser configurado com um IP dedicado, disponível no Pro Email API e no Advanced Marketing Campaigns.
Leitura adicional na documentação do SendGrid
Testes de e-mailwww.twilio.com ↗Autenticação de domíniowww.twilio.com ↗List-Unsubscribewww.twilio.com ↗Link brandingwww.twilio.com ↗Perguntas
Por que meus e-mails mostram "via sendgrid.net"?
O SendGrid ainda não autenticou seu domínio de envio. Configure a autenticação de domínio em Settings > Sender Authentication e, de acordo com a documentação do SendGrid, essa indicação desaparecerá.
O relatório diz que o List-Unsubscribe está ausente, mas eu uso o SendGrid. Por quê?
Provavelmente, você envia pela API ou por SMTP com o Subscription Tracking desativado. Ative-o em Settings > Tracking ou adicione os dois cabeçalhos por conta própria no objeto headers.
Posso usar o "Send Test Message" do SendGrid para isso?
Sim, a mensagem chega ao endereço de teste. Lembre-se apenas de que o assunto chega com Test - no início. Para testar os cabeçalhos exatamente como os assinantes os recebem, um Single Send para uma lista com um contato é mais adequado.
Posso usar o endpoint da API de envio de teste em vez do Mail Send?
Somente para Dynamic Transactional Templates, que é tudo o que /v3/marketing/test/send_email aceita. Ele permite até 10 endereços. Todo o restante passa por /v3/mail/send.
Qual seletor devo inserir no verificador DKIM?
Com a segurança automatizada ativada, verifique s1 e s2. Com ela desativada, o seletor é m1. Se você escolheu um seletor personalizado durante a configuração, use-o.