Nesta páginaComo o WordPress envia e-mails por padrão
Um site WordPress envia mais e-mails do que seu proprietário imagina. A notificação do formulário de contato. A redefinição de senha. As boas-vindas para novos usuários, o alerta de moderação de comentários e, em uma loja, todas as confirmações de pedido, faturas e atualizações de envio do WooCommerce. A maioria desses e-mails não foi planejada por ninguém, e ninguém os verifica até que um cliente escreva dizendo que o e-mail do pedido nunca chegou.
Quando um desses e-mails cair no spam, veja como a mensagem sai do servidor antes de alterar o texto. No WordPress, essa parte usa por padrão a opção com a pior capacidade de entrega possível.
Como o WordPress envia e-mails por padrão
O próprio WordPress e praticamente todos os plugins que enviam e-mails, incluindo o WooCommerce e os plugins de formulário, usam uma única função, wp_mail(). Ela entrega a mensagem ao PHPMailer, que, por padrão, a repassa para a função mail() do PHP. Essa função a entrega ao programa de e-mail disponível no servidor de hospedagem. Não há login em um provedor de e-mail, nenhuma assinatura e nada no seu DNS indicando que esse servidor pode enviar mensagens pelo seu domínio.
O endereço do remetente escolhido é wordpress@ seguido pelo domínio do seu site (o WordPress remove o www. inicial). Se você nunca o alterou, é isso que seus clientes veem no campo From e, em muitos sites, ninguém sequer criou essa caixa de correio.
Em uma hospedagem compartilhada, a mensagem é enviada pelo servidor da hospedagem, por meio de um endereço IP compartilhado com muitos outros sites. Se um deles enviar mensagens para uma lista comprada ou for invadido e começar a disparar spam, o endereço fica com uma reputação ruim, e seus e-mails de redefinição de senha são enviados pelo mesmo endereço que os deles.
Portanto, uma instalação padrão do WordPress envia e-mails cujo SPF não corresponde ao seu domínio. O endereço de retorno geralmente permanece no nome de servidor da própria hospedagem e, se o seu endereço for usado ali, o SPF falha completamente. Também não há uma assinatura DKIM para o seu domínio, então o DMARC falha. Gmail e Yahoo definiram suas regras para remetentes em fevereiro de 2024. A Microsoft fez o mesmo em maio de 2025 para domínios que enviam mais de 5.000 mensagens por dia ao Outlook.com. Desde novembro de 2025, o Gmail vem rejeitando uma quantidade maior dos e-mails que violam suas regras, em vez de encaminhá-los para o spam.
Envie por um serviço de e-mail de verdade
A correção mais importante é parar de usar mail(). Instale um plugin SMTP (WP Mail SMTP, FluentSMTP e Post SMTP são os mais comuns, e cada um tem uma versão gratuita) e conecte-o a um serviço que envie e-mails corretamente: seu próprio provedor de caixa de e-mail, como Google Workspace ou Microsoft 365, ou um serviço transacional como Amazon SES, Brevo, SendGrid ou Mailgun.
O plugin substitui o transporte usado pelo wp_mail(), então todos os e-mails de todos os plugins passam a ser enviados pelo novo método, sem alterar os próprios plugins. Quando o plugin oferecer essa opção, use a API do provedor em vez de SMTP comum com senha. O WP Mail SMTP informa que a conexão via API funciona mesmo quando seu provedor de hospedagem bloqueia as portas SMTP.
Muitas pessoas ignoram a próxima parte. Autentique o domínio nesse provedor: cada serviço fornece registros DNS que você precisa publicar, normalmente dois ou três registros CNAME para DKIM e uma inclusão no SPF ou um domínio de caminho de retorno personalizado. Enquanto esses registros não estiverem no seu DNS, o provedor usará o próprio nome na assinatura, e o DMARC falhará ali da mesma forma que falhava no provedor de hospedagem.
O endereço From nos formulários de contato
Plugins de formulário, incluindo Contact Form 7 e WPForms, permitem escolher o que aparece na linha From da notificação que você recebe. Muitas configurações colocam ali o endereço do visitante, para que, ao clicar em Reply, a resposta seja enviada a ele. Parece uma solução inteligente, mas é exatamente isso que o DMARC foi criado para impedir.
Digamos que uma visitante chamada Anna escreva usando anna@yahoo.com. Seu site envia uma mensagem alegando ser de yahoo.com por meio de um servidor que o Yahoo nunca autorizou. yahoo.com publica uma política DMARC com p=reject, então um destinatário que segue essa política recusa a notificação por considerá-la falsificada. Com um visitante do Gmail, a política é mais branda, e a mensagem acaba com mais frequência no spam. O WPForms alerta exatamente sobre isso em sua documentação.From é você, Reply-To é o visitante
Configure desta forma:
- From: um endereço do seu próprio domínio, como
forms@yourdomain.com, no mesmo domínio para o qual seu plugin SMTP está autenticado. - Reply-To: o endereço do visitante, obtido do campo do formulário. Ao clicar em Reply, você ainda responderá à Anna.
- To: a caixa de e-mail que você realmente lê.
No Contact Form 7, essa configuração fica na aba Mail: coloque seu próprio endereço em From e adicione Reply-To: [your-email] em Additional headers. Os outros plugins de formulário têm um campo Reply-To nas configurações de notificação.
E-mails do WooCommerce
O WooCommerce tem suas próprias configurações de remetente: WooCommerce, depois Settings, depois Emails, na seção Email Sender Options, com um nome em "From" e um endereço em "From". Por padrão, o endereço é o e-mail de administrador do site. Se a pessoa que instalou a loja usou um endereço do Gmail para isso, todas as confirmações de pedido são enviadas como se viessem de gmail.com e falham no DMARC pelo mesmo motivo do formulário de contato acima. Coloque nessa configuração um endereço do seu domínio autenticado. O nome da loja é uma boa opção de nome do remetente. (Nas notificações de pedido enviadas a você, o WooCommerce já coloca o cliente em Reply-To, que é a configuração correta.)
Dois problemas podem ocorrer com e-mails de lojas, mas não com um formulário de contato.
O primeiro é o volume. Se uma promoção ou um plugin de newsletter envia mensagens aos clientes pela mesma rota usada para confirmações de pedidos, os e-mails de marketing e transacionais ficam associados à mesma reputação. Se a newsletter receber reclamações, a entrega dos recibos será prejudicada. Enviar os dois tipos por serviços diferentes mantém suas reputações separadas. Usar um subdomínio separado para marketing também ajuda um pouco, embora os provedores ainda considerem em certa medida a reputação do domínio principal.
O segundo é a questão do cancelamento de inscrição. Confirmações de pedidos e redefinições de senha são transacionais, e a regra de cancelamento de inscrição com um clique do Gmail e do Yahoo não se aplica a elas. Uma solicitação de avaliação, um lembrete de carrinho abandonado ou um e-mail do tipo "você também pode gostar" enviado a clientes antigos é marketing. Se você enviar essas mensagens em grande volume, a regra se aplicará integralmente a elas, o que exige um cabeçalho List-Unsubscribe com uma opção de cancelamento em um clique. Verifique se o complemento que as envia adiciona esse cabeçalho. O teste abaixo mostrará se ele está presente.
O lado do DNS, em termos simples
Independentemente do serviço que você usa para enviar, seu domínio precisa de três itens no DNS para que os e-mails sejam considerados confiáveis. Há um passo a passo completo em Entenda SPF, DKIM e DMARC. Veja o que isso significa para um site WordPress.
- SPF. Um registro TXT no seu domínio que lista quem pode enviar e-mails em nome dele. Muitos serviços de envio não exigem alterações aqui, pois fazem o alinhamento por meio do próprio domínio de retorno. Se o seu serviço solicitar um
include:e o domínio já tiver um registro para o provedor da sua caixa de e-mail, adicione-o a esse registro. Não crie um segundo registro. Dois registros SPF são um erro e ambos deixam de funcionar. Verifique o resultado com o verificador de SPF. - DKIM. Os registros fornecidos pelo seu serviço de envio. Assim que estiverem ativos, o serviço assinará todas as mensagens com seu domínio, e essa é a assinatura que o DMARC procura.
- DMARC. Um registro TXT em
_dmarc.yourdomain.com. Comece comv=DMARC1; p=none; rua=mailto:e um endereço que você leia. Depois, torne a política mais rigorosa quando os relatórios mostrarem que nenhum dos seus e-mails está falhando. O verificador de DMARC analisa o que você configurou.
Lembre-se de que o servidor de hospedagem ainda pode estar enviando algo por conta própria, como uma tarefa cron ou um plugin antigo que chama mail() diretamente em vez de wp_mail(). Essas mensagens não passam pelo plugin SMTP, e os relatórios DMARC as mostrarão como uma origem que você não esperava.
Teste os e-mails reais, não uma mensagem de teste
Todo plugin de SMTP tem um botão "send test email", e isso só comprova que a conexão funciona. Ele não mostra a confirmação do pedido da forma como o WooCommerce a gera, a notificação do formulário com seu Reply-To nem a redefinição de senha com o link inserido pelo WordPress.
Por isso, faço o WordPress enviar os e-mails reais. Um endereço de teste da página inicial recebe uma mensagem, então gere um novo endereço para cada e-mail que você quiser verificar. Para o formulário, defina temporariamente esse endereço como destinatário da notificação e envie o formulário. Para o WooCommerce, faça um pedido de teste usando o endereço como e-mail do cliente. Para a redefinição de senha, atribua o endereço a um usuário de teste e solicite a redefinição. Cada mensagem recebe seu próprio relatório, com SPF, DKIM e DMARC e seus alinhamentos, 21 listas de bloqueio, conteúdo e links, além das regras para remetentes em massa. Para verificar a pasta de destino no Gmail, Outlook, Yahoo e em outros provedores, é preciso enviar a mesma mensagem para uma lista de caixas de entrada com um marcador no assunto, algo que um formulário ou pedido de loja não consegue fazer. Portanto, deixe essa parte para os e-mails que você mesmo envia.
Se você preferir não fazer pedidos de teste manualmente, o plugin para WordPress gratuito envia essas mensagens pelo wp_mail() do seu próprio site, o mesmo caminho percorrido pelos e-mails dos seus clientes, e mostra o resultado no painel. Ele também detecta quando o site começa a enviar um tipo de e-mail que ainda não havia identificado.
Quando o e-mail ainda vai para o spam
Se a autenticação passar, o endereço From estiver no seu domínio e o e-mail ainda for para o spam, verifique a reputação do serviço pelo qual você envia. Um IP de hospedagem compartilhada em uma lista de bloqueio é um motivo comum quando você ainda usa mail(), e o verificador de listas de bloqueio mostrará isso. O conteúdo tem um impacto menor do que as pessoas imaginam. Uma notificação de formulário com um único link e três linhas de texto raramente aciona um filtro por si só. Já um e-mail do WooCommerce com um template HTML pesado, uma imagem grande e um encurtador de links pode acionar.
Verifique uma mensagem, corrija o que o relatório indicar e envie-a novamente para um novo endereço.