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.
Antes de começar: Não use a senha principal da conta de e-mail no plugin de SMTP. Gere uma senha de aplicativo dedicada ou use a chave de API do provedor transacional, que pode ser revogada isoladamente sem afetar o acesso à conta.
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
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.
PHP
// 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' );
} );
Perguntas frequentes
Por que o formulário diz que enviou mas o e-mail não chega?
Porque o plugin confirma que entregou a mensagem ao WordPress, não que o e-mail saiu do servidor. O wp_mail() usa o PHP mail() padrão, que o destino recusa ou joga no spam. Configurar SMTP autenticado resolve a entrega de fato.
Preciso de SMTP mesmo usando o Contact Form 7?
Sim. O Contact Form 7, o WPForms e os demais plugins apenas entregam a mensagem ao wp_mail(). Sem SMTP autenticado por trás, o envio continua usando a função mail() do servidor, que é o ponto de falha mais comum.
Qual e-mail devo colocar no campo remetente do formulário?
Use um endereço do próprio domínio do site, como [email protected]. Nunca use o e-mail do visitante como remetente, pois isso aciona o filtro anti-spoofing. O e-mail do visitante vai no campo "Responder para".
As mensagens chegam no spam. Como evitar?
Publique os registros SPF e DKIM do seu provedor SMTP no DNS do domínio. Eles autenticam o envio e tiram as mensagens do filtro de spam do destinatário.
O reCAPTCHA pode estar bloqueando o envio?
Sim. Um reCAPTCHA com chave errada ou mal integrado pode impedir o formulário de processar o envio. Desative-o temporariamente para testar; se o e-mail passar a chegar, reconfigure as chaves do reCAPTCHA.
Como tenho certeza de que o problema é o e-mail e não o formulário?
Use o e-mail de teste do plugin de SMTP, que envia uma mensagem sem passar pelo formulário. Se o teste chega e o formulário não, o problema está nas configurações do formulário; se o teste também falha, o problema é o transporte SMTP.














