Como corrigir formulário de contato que não envia email
O que é o formulário de contato que não envia e-mail?
O formulário de contato que não envia e-mail é a situação em que plugins como Contact Form 7, WPForms ou Forminator confirmam o envio para o visitante, mas o e-mail não chega ao administrador. O plugin de formulário entrega a mensagem ao wp_mail() do WordPress, que por padrão usa o comando PHP mail() do servidor: sem autenticação SMTP, sem SPF/DKIM e com remetente errado, o destino recusa o e-mail ou o joga no spam. O conserto é configurar SMTP e alinhar o remetente.
Como identificar
- O formulário mostra “Obrigado, sua mensagem foi enviada”, mas o e-mail nunca chega ao admin.
- As mensagens chegam na pasta de spam em vez da caixa de entrada.
- O Contact Form 7 exibe “Falha ao enviar sua mensagem. Tente novamente mais tarde” em vermelho.
- O e-mail de teste do plugin de SMTP falha, confirmando que o problema é o transporte e não o formulário.
Como prevenir
- Configure SMTP autenticado antes de publicar qualquer formulário de contato no site
- Use sempre um remetente do próprio domínio e coloque o e-mail do visitante só no reply-to
- Ative o log de e-mails do plugin de SMTP para confirmar entregas e detectar falhas antes do cliente
Erros relacionados
Causa
O WordPress usa a função PHP mail() padrão, sem autenticação SMTP, e o provedor de destino recusa a mensagem Campo "De" (from) do formulário usa o e-mail do visitante, disparando o filtro anti-spoofing do destino Ausência de SPF e DKIM no DNS do domínio, fazendo a mensagem cair no spam Plugin anti-spam ou reCAPTCHA mal configurado bloqueando o envio antes de chegar ao e-mail Campo de e-mail de destino vazio ou com erro de digitação nas configurações do formulário
Como resolver
- Confirme o e-mail de destino no formulário: abra as configurações do plugin (aba E-mail/Notificações) e verifique se o campo "Para" tem um endereço válido e sem erro de digitação.
- Corrija o campo remetente: no campo "De", use um endereço do próprio domínio do site (ex.: [email protected]), não o e-mail digitado pelo visitante. Coloque o e-mail do visitante apenas no campo "Responder para" (reply-to).
- Instale e configure SMTP: instale um plugin de SMTP (WP Mail SMTP, FluentSMTP) e aponte para o servidor do seu domínio ou um serviço transacional, com host, porta e criptografia corretos.
- Envie o e-mail de teste do plugin SMTP: use a aba de teste do plugin de SMTP. Se o teste chega, o transporte está certo e o problema era a função mail() padrão.
- Publique SPF e DKIM no DNS: adicione os registros que o provedor SMTP fornecer para tirar as mensagens do spam e autenticar o domínio.
- Teste o formulário real: preencha e envie o formulário do site e confirme a chegada na caixa de entrada do destinatário configurado.
// functions.php do tema filho — corrige o remetente que o plugin de formulario manda
// (mantem o e-mail do visitante apenas como Reply-To, evitando o filtro anti-spoofing)
add_filter( 'wp_mail_from', function ( $original ) {
return '[email protected]'; // remetente do SEU dominio
} );
add_filter( 'wp_mail_from_name', function ( $original ) {
return get_bloginfo( 'name' );
} );














