Guia prático

O formulário mostra sucesso, mas o email não chega

Acompanhe uma mensagem de teste em vez de tentar de novo sem conferir o resultado anterior.

Resposta rápida. Separe a requisição da página, o registro no Formgong e a entrega ao destinatário verificado. success: true confirma aceitação, não chegada do email. Confira também spam, verificação da conta e problemas de Turnstile.

Formgong·

Seu formulário Nome Email Mensagem Enviar Formgong Telegram Nova mensagem Nome · Email Abrir registro + aviso por email
O visual fica no seu site. O Formgong recebe os envios e entrega as notificações.

Três resultados diferentes

O agradecimento pode ser apenas um estado da interface. O registro e o email recebido são outras etapas. Envie uma mensagem reconhecível no site publicado e acompanhe a mesma tentativa. Os códigos abaixo são do Formgong; em outro serviço, consulte a documentação correspondente.

Procure a requisição em Network

Abra as ferramentas do navegador e envie o formulário. Procure o POST para https://formgong.com/submit, conferindo chave, campos e resposta. Sem requisição, revise o botão e o evento de envio. HTML usa action e method; JavaScript precisa da URL certa em fetch.

Confira a resposta antes de mostrar sucesso

Peça JSON com Accept: application/json e valide HTTP e success. Fetch pode terminar com erro do servidor. Um POST HTML comum recebe redirecionamento. Use try/catch ao chamar o exemplo e mantenha os campos no erro.

JavaScript
// Call from your form's submit handler inside try/catch.
// Keep the entered fields when the request fails.
async function sendContactForm(form) {
  const response = await fetch("https://formgong.com/submit", {
    method: "POST",
    headers: {
      "Content-Type": "application/json",
      Accept: "application/json",
    },
    body: JSON.stringify({
      ...Object.fromEntries(new FormData(form)),
      access_key: "fk_your_access_key",
    }),
  });
  const result = await response.json();
  if (!response.ok || result.success !== true) {
    throw new Error(result.message || "Submission failed");
  }
  // Accepted by Formgong; this is not email-delivery confirmation.
  return result.id;
}

O código indica a próxima checagem

unknown_access_key aponta para a chave; origin_not_allowed, para o domínio. turnstile_missing e turnstile_failed indicam token ausente ou inválido. rate_limited e limit_exceeded são limites diferentes, não resolvidos por cliques seguidos.

Desabilite o botão durante a espera e reabilite-o ao terminar. Não apague a mensagem quando algo falhar.

Examine também os registros de spam

Abra o formulário que corresponde à chave da página. Um botcheck preenchido pode produzir uma resposta aparentemente positiva e registrar spam sem avisos. Se a avaliação por IA retiver spam, confira essa classificação também.

Se há registro, siga para os avisos

Confirme o email do proprietário e veja se as notificações desse formulário estão ativas. Confira o destinatário verificado, spam, filtros e encaminhamentos.

Uma mensagem no Telegram ajuda a isolar o canal de email, mas não comprova sua entrega. A resposta automática ao visitante é outra mensagem com configurações próprias.

Depois de mudar a proteção

Atualize o código com site key e cf-turnstile-response. Tokens expiram e só funcionam uma vez; obtenha outro antes de repetir, se necessário. O secret key não entra no navegador. Teste o domínio publicado.

Guarde o que ajuda a investigar

Anote URL, horário, status HTTP, código e ID do envio, quando houver. Não publique dados de clientes ou segredos. Após corrigir, teste todo o caminho.

O exemplo HTML oferece uma base simples, e o guia de Telegram explica outro canal.

Perguntas frequentes

success: true confirma o email?

Não. O Formgong aceitou a requisição; a entrega da notificação é uma etapa separada.

Por que Telegram chega e email não?

Os canais são independentes. Confira notificações, destinatários verificados e spam.

Por que botcheck não mostra erro?

É uma armadilha para bots: o envio pode parecer correto e virar spam sem notificações.

Como tentar novamente com Turnstile?

Obtenha um token novo e confira seu envio em cf-turnstile-response. Não reutilize um já consumido.

Fontes e documentação

Referências oficiais deste guia: MDN: Fetch API, Cloudflare: Turnstile token validation. Documentação do Formgong, Onde os dados ficam.

Ler em Markdown
← Voltar ao blog