Guias

Como Adicionar um Formulário de Contato ao Seu Site (Que Realmente Chega até Você)

Para adicionar um formulário de contato que funcione, crie um formulário curto (nome, e-mail, mensagem), envie-o para uma rota do servidor que valida os dados, salve a mensagem em um banco de dados e depois envie uma notificação para você por e-mail, por meio de um provedor, usando uma chave de API secreta. Adicione um campo oculto de armadilha (honeypot) e limitação de taxa para barrar a maior parte do spam, mostre uma mensagem clara de sucesso e teste tudo de ponta a ponta no site publicado. Salvar antes de enviar o e-mail é a parte importante: se o e-mail falhar, você ainda tem o contato.

Suas opções

OpçãoComo funcionaBom paraTrade-offs
Link mailto"Fale conosco" abre o aplicativo de e-mail do visitanteSites pessoaisFalha em muitos dispositivos; expõe seu endereço a robôs
Serviço de formulário hospedadoO formulário envia os dados para um serviço de terceiros que te envia o e-mailSites estáticos sem back-endOutra conta; limites e marca d'água nos planos gratuitos
Ferramenta de formulário embutidaUm widget de um construtor de formulários incorporado na sua páginaPesquisas complexas, configuração rápidaNão combina com o seu design; os dados ficam em outro lugar
Seu próprio formulário + banco de dados + e-mailSeu servidor salva e notificaA maioria dos apps e sites de negóciosVocê configura um provedor de e-mail

Se o seu site já tem um back-end e um banco de dados — o que apps criados com criadores de apps com IA costumam ter —, a última opção é a mais confiável e mantém os contatos onde você consegue vê-los.

O que um bom formulário de contato inclui

  • O menor número possível de campos. Nome, e-mail, mensagem. Adicione uma lista de assunto ("Vendas", "Suporte", "Outro") só se for encaminhar por ela.
  • Rótulos claros acima de cada campo, não apenas um texto de exemplo que desaparece.
  • Validação útil: "Digite um endereço de e-mail válido", exibido ao lado do campo.
  • Uma tela de sucesso que diga o que acontece em seguida: "Obrigado — respondemos em até um dia útil."
  • Um aviso de privacidade explicando como você usará os dados, com link para sua política de privacidade.
  • Uma alternativa, como seu e-mail ou telefone, para quem preferir.

Exemplos de prompts

O formulário básico:

Adicione um formulário de contato na página Contato com nome, e-mail e mensagem (todos obrigatórios, mensagem com até 2.000 caracteres). Envie para uma rota do servidor que valida os dados, salva em uma tabela contact_messages com a data e hora de recebimento e mostra a mensagem de sucesso: "Obrigado, respondemos em até um dia útil." Mostre os erros dos campos logo abaixo de cada um. Faça funcionar bem em celulares.

Notificações por e-mail:

Quando uma mensagem de contato for salva, envie um e-mail de notificação para hello@exemplo.com.br usando o Resend, com a chave em RESEND_API_KEY. Defina o reply-to como o e-mail de quem enviou, para que eu possa responder diretamente. Se o envio falhar, mantenha a mensagem salva e registre o erro sem expor a chave.

Proteção contra spam:

Adicione proteção contra spam ao formulário de contato: um campo oculto de armadilha que deve permanecer vazio, um limite de 5 envios por IP por hora no servidor e rejeite mensagens com mais de 3 links. Descarte silenciosamente os envios com a armadilha preenchida, mas ainda mostre a mensagem de sucesso.

Uma caixa de entrada:

Adicione uma página administrativa protegida por senha que liste as mensagens de contato das mais recentes para as mais antigas, com uma caixa de seleção "respondida" e um filtro para mensagens não respondidas.

Passo a passo

  1. Decida para onde as mensagens vão: quem recebe as notificações e quem responde.
  2. Construa o formulário com os campos acima, rótulos acessíveis e campos adequados a celular (use o tipo de entrada de e-mail para que os celulares mostrem o teclado certo).
  3. Crie a rota do servidor. Ela verifica os campos obrigatórios, o formato do e-mail e os limites de tamanho. Nunca confie apenas na validação do navegador.
  4. Salve no banco de dados primeiro. Veja como adicionar um banco de dados ao seu app.
  5. Configure um provedor de e-mail. Crie uma conta, verifique seu domínio de envio e guarde a chave de API como segredo. Como enviar e-mails pelo seu app explica em detalhes a configuração do domínio (SPF, DKIM).
  6. Envie a notificação a partir do servidor, depois de salvar. Use seu domínio verificado como remetente e o e-mail do visitante como reply-to — não envie "de" o endereço do visitante, pois isso provavelmente será rejeitado como falsificação.
  7. Opcionalmente, envie uma resposta automática ao visitante, mas mantenha-a curta; respostas automáticas para endereços de spam podem prejudicar a reputação do seu envio.
  8. Adicione proteção contra spam: armadilha (honeypot), limitação de taxa e, se necessário, uma verificação tipo CAPTCHA.
  9. Teste no site publicado: envie uma mensagem, confira o banco de dados, confira sua caixa de entrada e a pasta de spam, clique em responder.

Como barrar spam

Formulários de contato atraem robôs em poucos dias após entrarem no ar. Coloque as defesas em camadas, da menos para a mais intrusiva:

  1. Campo de armadilha (honeypot). Um campo oculto para humanos; robôs o preenchem. Não custa nada aos visitantes reais.
  2. Limitação de taxa no servidor. Limita quantas mensagens um mesmo endereço pode enviar em um período.
  3. Regras de conteúdo. Rejeite mensagens cheias de links, ou com um campo de mensagem vazio ou absurdamente longo.
  4. Uma verificação tipo CAPTCHA, como Cloudflare Turnstile ou Google reCAPTCHA. O token precisa ser validado no seu servidor; uma verificação que roda só no navegador pode ser contornada.

Erros comuns

  • Mostrar "Enviado!" quando nada foi enviado. A interface indica sucesso antes ou independentemente da resposta do servidor. Sempre espere pela resposta do servidor.
  • Só e-mail, sem banco de dados. Uma chave mal configurada e os contatos somem por semanas sem que ninguém perceba.
  • Chave de API no código do front-end. Qualquer pessoa pode usá-la para enviar e-mails em seu nome.
  • Domínio de envio não verificado. As notificações caem no spam ou nunca chegam.
  • Enviar "de" o e-mail do visitante. Use reply-to.
  • Sem limites de tamanho. Robôs colam blocos enormes de texto.
  • Nunca testar o site no ar. Chaves e domínios costumam ser diferentes entre a prévia e a produção.

Checklist

  • Formulário curto, com rótulos visíveis e erros claros
  • Validação no servidor e limites de tamanho
  • Toda mensagem salva no banco de dados
  • E-mail de notificação enviado a partir de um domínio verificado, com reply-to definido
  • Chave de API de e-mail guardada somente como segredo no servidor
  • Armadilha (honeypot) e limitação de taxa ativas
  • Mensagem de sucesso aparece somente após a confirmação do servidor
  • Aviso de privacidade com link para sua política de privacidade
  • Testado de ponta a ponta no site publicado, incluindo a pasta de spam

Formulários de contato na Mythex

Na Mythex, você pode construir tudo isso pelo chat. Peça o formulário e um banco de dados no mesmo prompt (ou digite /database) para que os envios sejam persistidos. A Mythex não tem um produto próprio de envio de e-mails, então para as notificações você traz um provedor como Resend, SendGrid ou Postmark, adiciona a chave com /secrets ou nas configurações do projeto e pede ao agente que envie a partir do servidor — veja Enviar e-mail pelo seu app. Antes de confiar nisso, execute o App Testing (/test) no formulário na Prévia, depois publique e teste na URL ao vivo.

Um formulário de contato é parte essencial da maioria dos sites para pequenos negócios e das landing pages. Confira a lista de verificação de segurança antes do lançamento.

Perguntas

Como faço um formulário de contato me enviar um e-mail?

O formulário envia os dados para uma rota do servidor, que salva a mensagem e depois envia uma notificação para você por meio de um provedor de e-mail, como Resend, SendGrid ou Postmark, usando uma chave de API guardada como segredo no servidor. Só o navegador não consegue enviar e-mails de forma confiável.

Por que não estou recebendo os e-mails do formulário de contato?

As causas comuns são uma chave de API ausente ou errada, um domínio de envio não verificado, notificações caindo na caixa de spam ou o formulário mostrar sucesso sem que a chamada ao servidor tenha funcionado. Salvar cada envio no banco de dados primeiro significa que você nunca perde uma mensagem enquanto corrige o e-mail.

Como impedir spam no formulário de contato?

Comece com um campo oculto de armadilha (honeypot) e limitação de taxa no servidor. Se o spam continuar, adicione uma verificação tipo CAPTCHA, como Cloudflare Turnstile ou Google reCAPTCHA, validada no servidor.

Devo usar um link mailto em vez de um formulário?

Um link mailto é simples, mas abre o aplicativo de e-mail do visitante, o que falha para muitas pessoas em computadores compartilhados ou de trabalho, e expõe seu endereço a robôs de spam. Um formulário é mais confiável para o visitante e permite controlar os campos que você recebe.

Mythex · Pricing · Crie qualquer coisa com IA · Templates de sites e apps · Mythex comparado · Glossário de criação de apps com IA · Ferramentas grátis para criar apps com IA · English

English አማርኛ العربية Български বাংলা Bosanski Català Čeština Dansk Deutsch Ελληνικά Español Español (España) Eesti فارسی Suomi Français Français (Canada) ગુજરાતી हिन्दी Hrvatski Magyar Հայերեն Bahasa Indonesia Íslenska Italiano 日本語 ქართული Қазақ тілі ಕನ್ನಡ 한국어 Lietuvių Latviešu Македонски മലയാളം Монгол मराठी Bahasa Melayu မြန်မာ Norsk bokmål Nederlands ਪੰਜਾਬੀ Polski Português (Portugal) Română Русский Slovenčina Slovenščina Soomaali Shqip Srpski Svenska Kiswahili தமிழ் తెలుగు ไทย Tagalog Türkçe Українська اردو Tiếng Việt 简体中文 繁體中文(香港) 繁體中文(台灣)