Guide pratique

Le formulaire annonce un succès, mais l'email n'arrive pas

Suivez un seul message de test plutôt que de multiplier les essais sans lire les réponses.

La réponse courte. Contrôlez séparément la requête du site, la demande enregistrée dans Formgong et l'email destiné à une adresse vérifiée. success: true indique l'acceptation, pas la livraison du courrier. Vérifiez aussi les demandes retenues, le spam et Turnstile.

Formgong·

Votre formulaire Nom Email Message Envoyer Formgong Telegram Nouvelle demande Nom · Email Ouvrir la demande + notification email
Votre site garde le design. Formgong reçoit les demandes et envoie les notifications.

Trois résultats à ne pas confondre

Un remerciement peut n'être qu'un état visuel. Un enregistrement et un email reçu sont deux autres résultats. Envoyez une demande identifiable depuis le site publié et suivez-la. Les codes ci-dessous concernent Formgong ; pour un autre service, consultez ses propres réponses.

La requête part-elle réellement ?

Ouvrez Network dans les outils du navigateur et cherchez le POST vers https://formgong.com/submit. Examinez clé, champs et réponse. Sans requête, revoyez le bouton ou le gestionnaire du formulaire. En HTML, vérifiez action et method ; en JavaScript, l'URL de fetch.

Affichez le succès après la réponse

Demandez du JSON avec Accept: application/json et contrôlez HTTP ainsi que success. Un fetch terminé peut avoir reçu une erreur. Un POST HTML classique redirige le navigateur. Appelez l'exemple dans try/catch et préservez les champs en cas d'échec.

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;
}

Le code d'erreur indique quoi examiner

unknown_access_key concerne la clé ; origin_not_allowed, le domaine autorisé. turnstile_missing et turnstile_failed concernent le token. rate_limited et limit_exceeded sont des limites distinctes : des clics rapides ne les corrigent pas.

Désactivez le bouton pendant l'attente et réactivez-le ensuite. Un échec ne doit pas effacer le message.

Cherchez dans le bon formulaire et le spam

La clé de la page doit correspondre au formulaire ouvert. Un botcheck rempli peut produire une réponse apparemment correcte, mais un enregistrement spam sans notifications. Si l'évaluation IA retient le spam, examinez aussi ce statut.

L'enregistrement existe : passez à l'email

Confirmez l'adresse du propriétaire. Vérifiez les notifications activées et les destinataires confirmés du formulaire, puis les indésirables, filtres et transferts de leur boîte.

Une notification Telegram aide à isoler le canal email, sans prouver sa livraison. La réponse automatique au visiteur est également un courrier distinct.

Après un changement de protection

Reprenez le code à jour avec le site key et cf-turnstile-response. Les tokens expirent et ne servent qu'une fois ; renouvelez le widget si nécessaire. Le secret key reste hors du navigateur. Vérifiez le domaine publié.

Préparez des informations utiles au diagnostic

Conservez URL, heure, statut HTTP, code et ID de demande s'il existe. Ne publiez ni données clients ni secrets. Après correction, testez à nouveau tout le parcours.

Pour repartir sur une base simple, utilisez l'exemple HTML ; pour un canal supplémentaire, le guide Telegram.

Questions fréquentes

success: true confirme-t-il l'email ?

Non. Formgong a accepté la requête ; la notification est livrée séparément.

Pourquoi Telegram arrive-t-il sans l'email ?

Les canaux sont indépendants. Vérifiez l'activation des emails, les destinataires confirmés et les indésirables.

Pourquoi botcheck ne renvoie-t-il pas d'erreur ?

C'est un piège pour les bots : l'envoi peut paraître réussi tout en étant classé comme spam sans notification.

Que faire après une erreur Turnstile ?

Obtenez un nouveau token et vérifiez son envoi dans cf-turnstile-response. Ne réutilisez pas un token consommé.

Sources et documentation

Références officielles de ce guide : MDN: Fetch API, Cloudflare: Turnstile token validation. Documentation Formgong, Stockage des données.

Lire au format Markdown
← Retour au blog