Formulario de contato parece simples ate o primeiro lead importante nao chegar. O visitante preenche nome, e-mail, telefone e mensagem; o site mostra sucesso; o banco salva o registro; mas a notificacao nao aparece na caixa de entrada. Em outros casos, a mensagem chega em spam, o servidor SMTP rejeita o remetente ou a aplicacao expoe dados demais em log.
Para um site que depende de contato comercial, campanha, diagnostico tecnico ou material gratuito, e-mail nao e detalhe. Ele faz parte da cadeia de conversao, atendimento e confianca. Se o formulario falha silenciosamente, a empresa perde oportunidade e demora para perceber.
Este guia organiza o que validar em formularios de contato com SMTP, com foco em pequenas empresas que usam site, backend, dominio proprio, Cloudflare, VPS, Google Ads, AdSense e contas de e-mail do dominio.
1. Separe salvar lead de enviar e-mail
O primeiro principio e nao perder o contato quando o e-mail falha. O backend deve salvar o lead no banco antes de tentar enviar notificacao. Se o SMTP estiver fora, lento ou rejeitando mensagem, o registro precisa continuar preservado para atendimento posterior.
Um fluxo mais seguro:
- validar campos obrigatorios;
- salvar lead no banco;
- registrar origem, pagina e UTM quando existirem;
- tentar enviar e-mail de notificacao;
- marcar se a notificacao foi enviada ou falhou;
- registrar log seguro para investigacao.
O artigo Google Ads, UTM e formulario de contato mostra por que origem e campanha precisam acompanhar o lead, nao ficar apenas no navegador.
2. Use remetente autorizado pelo servidor SMTP
Muitos servidores SMTP rejeitam mensagens quando a aplicacao autentica com uma conta, mas tenta enviar usando outro remetente. Em containers, se nada for configurado, pode aparecer um remetente automatico como usuario local do sistema. Esse tipo de remetente costuma ser recusado.
Regra pratica:
- autentique com a conta autorizada do dominio;
- use como
Fromum endereco permitido pelo servidor SMTP; - use o e-mail do visitante como
Reply-To, nao como remetente principal; - configure nome de exibicao claro para a empresa;
- evite remetente generico gerado pelo container ou servidor.
Isso melhora entregabilidade e evita rejeicoes por identidade de remetente invalida.
3. Preserve Reply-To para responder ao visitante
Usar o e-mail do visitante como Reply-To permite que a equipe responda diretamente ao contato sem falsificar o remetente. Essa separacao e importante porque o visitante nao controla o servidor SMTP da empresa.
Um e-mail de notificacao saudavel pode ter:
From: conta autorizada do dominio;Reply-To: e-mail informado pelo visitante;To: caixa interna de atendimento;- assunto com contexto do formulario;
- corpo com dados do lead e origem;
- nenhuma senha, token ou dado sensivel desnecessario.
Assim, a mensagem tem identidade tecnica coerente e continua util para a equipe comercial.
4. Valide SPF, DKIM e DMARC
SPF, DKIM e DMARC ajudam servidores destinatarios a verificar se mensagens do dominio sao legitimas. Eles nao resolvem todos os problemas, mas reduzem rejeicao e suspeita de fraude.
Em termos simples:
- SPF: informa quais servidores podem enviar e-mail pelo dominio;
- DKIM: assina mensagens com uma chave do dominio;
- DMARC: orienta o que fazer quando SPF ou DKIM falham;
- MX: informa quem recebe e-mail do dominio.
Quando o site muda para uma VPS e o e-mail continua em outro provedor, esses registros precisam ser preservados. O artigo DNS, Cloudflare e e-mail aprofunda essa separacao.
5. Configure timeouts e erros claros
Uma chamada SMTP sem timeout pode prender a aplicacao esperando resposta. Um erro sem log claro deixa a equipe sem saber se houve senha errada, porta bloqueada, host incorreto, remetente rejeitado ou problema de rede.
Configure e registre:
- host SMTP;
- porta e SSL/TLS esperado;
- autenticacao;
- timeout de conexao;
- timeout de leitura;
- timeout de escrita;
- resultado do envio;
- identificador do contato salvo;
- mensagem tecnica segura da falha.
O usuario final nao precisa ver detalhe tecnico. Ele precisa receber uma mensagem clara. A equipe precisa ter log suficiente para corrigir.
6. Nao exponha senha SMTP em codigo, tela ou log
A senha SMTP e segredo. Ela nao deve ficar em frontend, repositorio, print, e-mail de teste ou log. O backend deve recebe-la por variavel de ambiente, arquivo protegido no servidor ou cofre de segredo.
Evite:
- senha real no
application.ymlversionado; - senha no JavaScript do frontend;
- log de todas as variaveis de ambiente;
- print de tela com configuracao sensivel;
- mensagem de erro retornando credencial;
- arquivo
.envreal dentro do Git.
O artigo Segredos e variaveis de ambiente detalha como separar senha, token e configuracao sem perder operabilidade.
7. Proteja o formulario contra abuso
Formulario publico pode receber spam, abuso e tentativas automatizadas. A protecao precisa equilibrar seguranca e experiencia do usuario.
Medidas possiveis:
- validacao de campos no frontend e no backend;
- limite de tamanho para mensagem;
- rate limit por IP ou origem quando aplicavel;
- honeypot discreto contra bots simples;
- captcha apenas se o abuso justificar;
- bloqueio de anexos quando nao forem necessarios;
- logs proporcionais sem armazenar dado sensivel demais.
O objetivo nao e dificultar contato real. E evitar que o formulario vire canal de spam, carga ou vazamento.
8. Teste o fluxo completo, nao apenas a tela
Teste visual nao basta. O formulario precisa ser validado de ponta a ponta.
Checklist de teste:
- abrir a pagina real do formulario;
- enviar contato com dados de teste;
- confirmar resposta de sucesso ao usuario;
- verificar registro salvo no banco;
- confirmar e-mail recebido na caixa correta;
- responder usando Reply-To;
- validar UTM e pagina de origem quando existirem;
- conferir logs do backend;
- verificar se a conversao do Google Ads dispara quando configurada;
- revisar spam, lixeira e logs do provedor de e-mail.
A pagina de evidencias tecnicas ajuda a registrar esses testes sem expor dado pessoal desnecessario.
9. Monitore sinais simples
Mesmo depois de funcionar, o formulario pode quebrar por senha expirada, DNS alterado, bloqueio do provedor, limite de envio, mudanca de firewall ou erro em deploy.
Sinais uteis:
- quantidade de leads salvos por periodo;
- quantidade de e-mails enviados com sucesso;
- falhas SMTP por tipo;
- tempo de resposta do formulario;
- leads salvos sem notificacao;
- origem de campanha dos contatos;
- reclamacoes de mensagem nao recebida;
- mudancas recentes em DNS, SMTP ou variaveis.
A pagina de indicadores tecnicos pode transformar esses sinais em acompanhamento simples.
10. Prepare um playbook de falha
Quando o formulario salva, mas o e-mail nao chega, a equipe precisa de roteiro. Sem isso, cada incidente vira tentativa e erro.
Roteiro inicial:
- confirmar se o lead foi salvo;
- verificar flag ou log de envio;
- conferir credenciais SMTP no ambiente;
- testar host, porta, SSL e autenticacao;
- validar remetente e Reply-To;
- consultar spam, lixeira e logs do provedor;
- verificar DNS de e-mail e registros SPF/DKIM/DMARC;
- reprocessar ou reenviar notificacao quando houver processo seguro;
- registrar causa e prevencao.
O playbook de formulario que salva mas nao envia e-mail serve como ponto de partida para essa resposta.
Erros comuns em formulario e SMTP
- mostrar sucesso antes de salvar o lead;
- perder contato quando SMTP falha;
- usar e-mail do visitante como remetente principal;
- deixar senha SMTP no repositorio;
- nao configurar timeout;
- ignorar spam e logs do provedor;
- trocar DNS do site e quebrar MX, SPF ou DKIM;
- nao salvar origem de campanha;
- nao monitorar falhas de notificacao.
Checklist minimo para site em producao
- Salvar lead antes de enviar e-mail.
- Usar remetente autorizado pelo SMTP.
- Configurar Reply-To com o e-mail do visitante.
- Manter senha SMTP fora do repositorio.
- Validar SPF, DKIM, DMARC e MX.
- Definir timeouts de SMTP.
- Registrar falha sem expor segredo.
- Testar banco, e-mail, spam e logs.
- Monitorar leads salvos sem notificacao.
- Documentar playbook de falha.
Formulario de contato bom nao e apenas bonito. Ele precisa preservar o lead, enviar notificacao, proteger credenciais, respeitar privacidade e deixar evidencias quando algo falha.
Para pequenas empresas, essa disciplina transforma o site em canal confiavel de relacionamento. E tambem evita que campanhas, conteudo, SEO e AdSense tragam visitantes para uma porta que nao avisa quando alguem bate.
Termos tecnicos desta leitura
Alguns conceitos aparecem com frequencia neste tema. Abrir o glossario ajuda a comparar definicoes, exemplos e leituras relacionadas sem sair do contexto do artigo.