Deliverability

O que é SPF e o que um registro SPF faz?

SPF verifica se um IP pode enviar em nome de um domínio envelope-from ou HELO, e um registro SPF publica as regras de autorização desse domínio no DNS.

Antes de alterar SPF, identifique o domínio que seu serviço de envio usa no endereço envelope-from. Esse endereço recebe devoluções e pode ser diferente do endereço From que o destinatário vê.

Qual domínio SPF verifica?

SPF verifica o domínio em SMTP MAIL FROM, o endereço envelope-from, ou a identidade HELO do servidor. HELO é o hostname que o servidor de envio apresenta ao iniciar a conversa SMTP.

O receptor já conhece o IP de conexão quando recebe MAIL FROM, então SPF pode ser executado antes de o corpo da mensagem chegar. Quando o remetente do envelope está vazio, como em MAIL FROM:<>, SPF usa a identidade HELO. A RFC 7208, o padrão SPF, também recomenda verificar o HELO separadamente.

SPF não verifica o endereço From visível. O alinhamento DMARC conecta um domínio autenticado a esse endereço.

Como é um registro SPF?

Um registro SPF é um registro DNS TXT cujo valor começa com v=spf1, seguido de regras de autorização.

example.com TXT "v=spf1 include:mailprovider.example ~all"

Aqui, include:mailprovider.example autoriza IPs que passam na política SPF desse provedor. ~all produz um softfail para os demais IPs. Substitua o provedor de exemplo pela política que seu serviço de envio publica.

O que os mecanismos e modificadores significam?

Mecanismos testam o IP de conexão em relação a uma condição. O modificador redirect delega a avaliação quando nenhum mecanismo corresponde.

TermoEfeito
ip4, ip6Corresponde a um endereço ou rede escrito diretamente no registro.
aCorresponde a um endereço retornado para o domínio indicado, usando a família de IP da conexão.
mxCorresponde a um endereço de um mail exchanger do domínio indicado.
includeCorresponde quando a política referenciada retorna pass para esse IP.
existsCorresponde quando o nome DNS especificado possui um registro A; macros podem construir esse nome a partir da conexão.
redirect=Avalia a política de outro domínio quando nenhum mecanismo corresponde; um mecanismo all o torna ineficaz.
ptrVerifica nomes de DNS reverso validados; não adicione a novos registros porque a consulta é lenta e não confiável.
allCorresponde a todos os IPs restantes, com o qualificador determinando o resultado.

Os mecanismos de endereço são escritos como ip4 e ip6. Uma entrada ptr pode aparecer em uma política mais antiga, mas a RFC 7208 desencoraja seu uso ao mesmo tempo que exige que os validadores a suportem.

O que os qualificadores de all mudam?

O qualificador define o resultado SPF para um IP que alcança all; o receptor decide como tratar a mensagem.

TerminaçãoResultado
-allFail: o domínio não autoriza o IP.
~allSoftfail: o domínio considera o IP provavelmente não autorizado.
?allNeutral: o domínio não faz nenhuma declaração.
+allPass para todos os IPs, removendo a restrição que SPF normalmente ofereceria.

Como os registros de exemplo são avaliados?

Cada exemplo abaixo ilustra uma política separada. Os IPs e domínios são exemplos de documentação, não valores para publicar no seu remetente.

RegistroO que autoriza
v=spf1 mx ip4:192.0.2.10 ip4:198.51.100.0/24 ~allOs mail exchangers do domínio, um IP e a rede listada; outros IPs recebem softfail.
v=spf1 a ip4:192.0.2.0/25 ip4:198.51.100.0/26 -allOs registros de endereço do domínio e duas redes; outros IPs recebem fail.
v=spf1 -allNenhum IP; qualquer tentativa de uso deste domínio resulta em fail SPF.
v=spf1 +allTodos os IPs, portanto não oferece restrição de envio.
v=spf1 redirect=_spf.example.comO que quer que a política em _spf.example.com autorize.
v=spf1 exists:%{i}._spf.example.com ~allIPs cujo nome de consulta expandido retorna um registro A; outros IPs recebem softfail.

No exemplo exists, uma conexão de 192.0.2.10 produz o nome de consulta 192.0.2.10._spf.example.com. Você precisa operar os registros DNS que fazem essa política funcionar; o padrão não autoriza um provedor por si só.

Quantas consultas DNS SPF pode usar?

SPF permite dez termos avaliados que consultam o DNS ao longo da política e avaliações aninhadas. Um décimo primeiro produz permerror, então adicionar outro provedor pode quebrar a avaliação em vez de autorizá-lo.

Os termos contados são include, a, mx, ptr, exists e redirect. Os termos literais ip4, ip6 e all não consomem essa cota. A contagem é de termos, não simplesmente de cada pacote DNS. O CNAME de return-path fornece a autorização SPF de Bird sem adicionar um include no apex.

Por que e-mails encaminhados podem falhar em SPF?

Um encaminhador ou lista de discussão pode reenviar e-mail legítimo a partir de um IP que o domínio envelope-from original não autoriza. Por exemplo, uma caixa de e-mail de ex-alunos encaminhando para uma caixa pessoal muda o servidor de conexão visto pelo receptor final.

Se o endereço envelope-from permanecer inalterado, SPF avalia o novo servidor em relação à política do domínio original. Um encaminhador pode reescrever o endereço envelope-from usando Sender Rewriting Scheme (SRS) para autenticar seu próprio domínio. Isso por si só não alinha SPF com o endereço From visível original.

Uma assinatura DKIM intacta e alinhada ainda pode fornecer um pass DMARC. A autenticação não garante que uma mensagem é desejada nem garante entrega na caixa de entrada.

O que você deve publicar para Bird?

Você publica o CNAME de return-path fornecido para seu domínio de envio. Ele aponta para a infraestrutura de devoluções de Bird, que já fornece a autorização SPF. Você não precisa de um include SPF adicional no domínio apex para enviar por meio de Bird.

Mantenha um registro SPF existente no apex para outros remetentes inalterado. Copie o dns_records do domínio. Verifique capabilities.return_path.status; confira capabilities.sending.status para prontidão em todos os requisitos de envio. Ambos os campos de status usam estes valores:

StatusSignificado e ação
pendingA verificação não foi executada ou está em andamento; aguarde o resultado.
verifiedOs registros DNS da capacidade correspondem aos valores esperados.
warningRegistros previamente verificados não correspondem mais; corrija-os antes do fim do período de tolerância. O envio ainda não foi afetado.
failedUm valor DNS está incorreto; corrija-o.
temporary_failureUma consulta DNS falhou temporariamente; a verificação é repetida automaticamente.
not_configuredA capacidade não está configurada para este domínio.

Você verifica DKIM, return-path e DMARC antes de enviar. Você pode alterar o hostname do return-path. Se um valor DNS TXT precisar de múltiplas strings entre aspas, o divisor de registros DNS formata essas strings sem alterar a cota de consultas de SPF.

Coloque em prática.

Continue com a documentação, guias e exemplos sobre este tópico. Os recursos estão em inglês.

Obtenha um resumo de implementação

Construa na mesma rede.

Uma chave de API de teste é sua imediatamente. A produção é desbloqueada quando adicionar um método de pagamento e verificar um remetente.

Sua próxima ideia.
Pronta para conectar.