# Envoyer un formulaire de site vers Gmail (et pourquoi mailto : échoue)

> Recevez les soumissions dans Gmail sans liens mailto:, mots de passe d'application ni Apps Script, puis libellez-les, évitez les spams et répondez depuis Gmail.

Publié le 2026-10-25 · https://ikiform.com/fr/guides/send-form-to-email/gmail

Envoyez le formulaire vers un backend de formulaires et ajoutez votre adresse Gmail comme destinataire ; n'utilisez pas d'action `mailto:`, qui ne fait qu'ouvrir l'appli de messagerie du visiteur. Ajoutez ensuite un filtre Gmail sur l'expéditeur pour que les soumissions évitent les spams et aient leur propre libellé. Cliquer sur **Répondre** dans Gmail écrit au visiteur, depuis votre propre adresse.

## Ce qui change ici

Gmail est une boîte de réception, pas un service d'envoi pour votre site. Il n'a pas d'URL vers laquelle un formulaire peut envoyer : tout chemin vers Gmail passe donc par autre chose. La première chose que la plupart des gens essaient, c'est `mailto:` :

`Le formulaire qui semble fonctionner`:

```html
<form action="mailto:you@gmail.com" method="post" enctype="text/plain">
  <input name="name" />
  <input name="email" type="email" />
  <textarea name="message"></textarea>
  <button>Send</button>
</form>
```

Il fonctionne, sur votre machine. Vous cliquez sur **Send**, votre appli de messagerie s'ouvre avec les champs dans le corps, et vous vous l'envoyez. Pour un visiteur, c'est différent :

Schéma : Ce que fait un formulaire mailto : sur l'appareil d'un visiteur

1. Le visiteur clique sur Envoyer. Le navigateur n'envoie le formulaire nulle part ; il passe un lien mailto : au système d'exploitation.
2. Si aucune appli de messagerie ni gestionnaire web n'est configuré, ce qui est courant sur les ordinateurs professionnels et pour les utilisateurs de Gmail dans le navigateur, rien de visible ne se passe, ou le système demande quelle appli utiliser.
3. Si une appli est configurée, un brouillon s'ouvre dans la messagerie du visiteur avec les champs collés dans le corps.
4. Le visiteur doit cliquer une seconde fois sur Envoyer, depuis son propre compte. Beaucoup ferment le brouillon, et vous ne saurez jamais qu'ils ont essayé.

Toutes les étapes après la première se passent sur l'appareil du visiteur : vous ne pouvez donc pas voir où les gens abandonnent.

Quand un message passe, le corps est fait de lignes brutes `name=value`, car c'est ce que produit l'encodage `text/plain` :

`Ce qui arrive`:

```text
name=Ada Lovelace
email=ada@example.com
message=Hi, do you take on small bathroom jobs in March?
```

Les autres chemins vers Gmail fonctionnent, mais chacun demande un serveur que vous gérez :

| Chemin | Ce qu'il demande | Le hic |
| --- | --- | --- |
| SMTP Gmail avec un mot de passe d'application | Un serveur qui exécute du code, et la validation en deux étapes sur le compte Google | Le mot de passe permet d'envoyer en votre nom depuis n'importe où : il ne doit donc jamais atteindre le navigateur. Google limite aussi le volume quotidien d'envoi d'un compte personnel |
| Google Apps Script avec `MailApp` | Un script déployé en application web | Les comptes personnels peuvent écrire à 100 destinataires par jour depuis des scripts. L'URL est publique et sans protection anti-spam, un seul bot peut donc épuiser le quota |
| Un backend de formulaires | L'URL du backend dans `action` | L'e-mail vient de l'adresse du service, pas de la vôtre. L'adresse de réponse règle ce qui compte |

Apps Script mérite qu'on s'y attarde, car c'est le chemin que proposent la plupart des tutoriels. Vous écrivez une fonction `doPost`, la déployez en application web que tout le monde peut appeler, et faites pointer le formulaire vers son URL. Cela fonctionne, mais un envoi de formulaire classique laisse le visiteur sur une page servie depuis le domaine de Google plutôt que le vôtre, chaque bot qui trouve l'URL peut épuiser le quota du jour, et le script s'exécute en votre nom : un bug peut donc envoyer des e-mails à n'importe qui depuis votre compte. Vous êtes aussi responsable de chaque modification des champs du formulaire par la suite.

## Envoyer le formulaire vers Gmail

Voici un formulaire pour un petit artisan. Le champ `job` rend la boîte facile à parcourir, et `email` est nommé ainsi pour que les réponses aillent au visiteur :

`contact.html`:

```html
<form action="https://ikiform.com/f/frm_xxxxxxxxxxxxxxxx" method="post">
  <label for="name">Your name</label>
  <input id="name" name="name" autocomplete="name" required />

  <label for="email">Email for our reply</label>
  <input id="email" name="email" type="email" autocomplete="email" required />

  <label for="job">What do you need?</label>
  <select id="job" name="job" required>
    <option value="">Choose one</option>
    <option value="repair">A repair</option>
    <option value="quote">A quote for a new job</option>
    <option value="other">Something else</option>
  </select>

  <label for="message">Details</label>
  <textarea id="message" name="message" rows="5" required></textarea>

  <input name="_gotcha" type="text" tabindex="-1" autocomplete="off" hidden />
  <button>Send to our inbox</button>
</form>
```

1. Créez un formulaire dans Ikiform et remplacez `frm_xxxxxxxxxxxxxxxx` par son id.
2. Si vous vous êtes inscrit avec votre adresse Gmail, vous recevez déjà les e-mails en tant que propriétaire de l'espace de travail. Sinon, ouvrez les réglages **Notifications** du formulaire, saisissez l'adresse Gmail sous **Add someone outside the workspace** et cliquez sur **Send link**.
3. Ouvrez l'e-mail de confirmation dans Gmail et confirmez. D'ici là, l'adresse affiche **Waiting for confirmation** et ne reçoit rien.
4. Ajoutez votre domaine dans les **Allowed domains** du formulaire, publiez la page et envoyez un test.

## Éviter les spams avec un filtre Gmail

Le premier e-mail d'un nouvel expéditeur peut atterrir dans **Spam** ou **Promotions**. Un filtre sur l'expéditeur règle cela définitivement. Dans Gmail, ouvrez les options de recherche, mettez `notifications@ikiform.com` dans **De**, cliquez sur **Créer un filtre**, puis cochez **Ne jamais envoyer dans le dossier Spam**, **Appliquer le libellé**, **Toujours marquer comme important** et **Catégoriser comme : Principale**, ce qui le garde hors de **Promotions**.

Ou importez le filtre. C'est le format qu'écrit la fonction **Exporter** des filtres de Gmail ; Google ne le documente pas à part, donc si l'import échoue, créez le filtre à la main comme ci-dessus. Enregistrez-le sous `mailFilters.xml`, puis allez dans **Paramètres**, **Voir tous les paramètres**, **Filtres et adresses bloquées**, **Importer des filtres** :

`mailFilters.xml`:

```text
<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:apps="http://schemas.google.com/apps/2006">
  <title>Mail Filters</title>
  <entry>
    <category term="filter"></category>
    <title>Mail Filter</title>
    <content></content>
    <apps:property name="from" value="notifications@ikiform.com"/>
    <apps:property name="label" value="Website"/>
    <apps:property name="shouldNeverSpam" value="true"/>
    <apps:property name="shouldAlwaysMarkAsImportant" value="true"/>
    <apps:property name="smartLabelToApply" value="^smartlabel_personal"/>
  </entry>
</feed>
```

Créez d'abord le libellé **Website**, ou renommez-le dans le fichier. Un seul filtre couvre tous les formulaires, car toutes les notifications viennent de la même adresse. Pour répartir les formulaires dans des libellés différents, filtrez plutôt sur l'objet, par exemple `subject:("New submission: Quote request")`.

> Gmail ignore les points et tout ce qui suit un signe plus dans la partie avant le @. Ajouter `you+site@gmail.com` comme destinataire livre dans votre boîte habituelle, et un filtre sur **À** peut alors distinguer les e-mails du site du reste. Cela compte comme une adresse extérieure, qui confirme donc par lien comme toute autre.

## Répondre depuis Gmail

Gmail respecte l'en-tête reply-to, donc **Répondre** s'adresse au visiteur. Votre réponse part de votre adresse Gmail, sans qu'Ikiform n'apparaisse dans le fil.

- Pour répondre plutôt depuis votre adresse professionnelle, ajoutez-la dans **Paramètres**, **Comptes et importation**, **Envoyer des e-mails en tant que**, et choisissez-la sur la ligne **De** quand vous répondez.
- Gmail peut regrouper en une seule conversation les notifications qui ont le même objet, car l'objet est toujours `New submission:` suivi du nom du formulaire. Désactivez le **Mode Conversation** dans les paramètres de Gmail si vous préférez une ligne par message.
- Les récapitulatifs horaires n'ont pas d'adresse de réponse, puisqu'ils couvrent de nombreux visiteurs. Répondez à ceux-là via les liens du tableau de bord.

## Vérifiez que tout fonctionne

1. Remplissez le formulaire sur votre page et envoyez-le. Vous arrivez sur votre page de remerciement, ou sur celle hébergée par Ikiform.
2. Retrouvez l'e-mail dans Gmail. Il porte votre libellé et n'est ni dans **Spam** ni dans **Promotions**.
3. Cliquez sur **Répondre**. La ligne **À** contient l'adresse saisie dans le formulaire.
4. Envoyez avec le honeypot rempli, `_gotcha=bot`. L'envoi reçoit quand même une réponse de succès, mais la soumission est stockée comme spam et n'envoie ni e-mail ni webhook.
5. Rien n'est arrivé ? Passez le filtre de statut du tableau de bord sur **Spam**. Le spam reçoit la même réponse de succès qu'une vraie soumission.

## Pièges

- **Alias Google Workspace.** Si le destinataire est un alias ou un groupe Google, les paramètres du groupe décident si les expéditeurs extérieurs sont acceptés. Envoyez un test avant de compter dessus.
- **La confirmation part en spam.** L'e-mail contenant le lien de confirmation vient aussi d'Ikiform. S'il n'apparaît pas, regardez dans **Spam** et signalez-le comme non-spam.
- **Plusieurs adresses Gmail.** Chaque formulaire envoie des e-mails à 10 adresses au total, et chaque adresse extérieure confirme séparément.
- **Anciens liens mailto : ailleurs.** Un lien `mailto:` dans votre pied de page convient très bien comme lien. Le problème n'est que `mailto:` comme `action` d'un formulaire.

## Questions

### Puis-je envoyer les soumissions vers une adresse Google Workspace ?

Oui. Une adresse Workspace fonctionne comme n'importe quel destinataire. S'il s'agit d'un groupe Google ou d'un alias, vérifiez que le groupe accepte les e-mails d'expéditeurs extérieurs, puis envoyez un test.

### Pourquoi mon formulaire mailto : n'envoie-t-il rien ?

Une action mailto : n'envoie jamais rien. Elle demande à l'appareil du visiteur d'ouvrir une appli de messagerie avec un brouillon. Si aucune n'est configurée, rien de visible ne se passe, et s'il y en a une, le visiteur doit encore y cliquer sur Envoyer.

### Puis-je utiliser le SMTP de Gmail pour envoyer les e-mails du formulaire ?

Seulement depuis un serveur que vous gérez, avec un mot de passe d'application sur un compte doté de la validation en deux étapes. Ne mettez jamais ce mot de passe dans du code côté navigateur ; il permet d'envoyer des e-mails en votre nom.

### Comment empêcher les e-mails du formulaire d'aller dans les spams de Gmail ?

Créez un filtre Gmail pour les e-mails de notifications@ikiform.com et cochez Ne jamais envoyer dans le dossier Spam. Appliquez un libellé en même temps, pour retrouver facilement les messages du formulaire.

### Puis-je répondre depuis Gmail à la personne qui a rempli le formulaire ?

Oui, quand le champ e-mail du formulaire s'appelle email, email_address, your_email, reply_to ou contact_email, ou que le formulaire envoie un champ _replyto. Gmail met alors le visiteur sur la ligne À quand vous cliquez sur Répondre.

## Autres guides

- [Recevoir un formulaire par e-mail](https://ikiform.com/fr/guides/send-form-to-email.md): Recevez chaque soumission dans votre boîte sans serveur mail : pourquoi mailto : et mail() de PHP échouent, et une solution qui filtre le spam et permet de répondre.
- [Répondre depuis votre boîte](https://ikiform.com/fr/guides/send-form-to-email/reply-to.md): Faites que Répondre sur une notification écrive à la personne qui a rempli le formulaire : noms de champs valides, quand utiliser _replyto, et pourquoi les réponses s'égarent.
- [Sans PHP](https://ikiform.com/fr/guides/send-form-to-email/without-php.md): Remplacez un script contact.php qui appelle mail() par un formulaire qui envoie vers un endpoint hébergé, en gardant vos noms de champs, votre page de remerciement et les réponses.
- [Plusieurs destinataires](https://ikiform.com/fr/guides/send-form-to-email/multiple-recipients.md): Envoyez un formulaire à toute votre équipe, ou aiguillez chaque message vers la bonne personne selon le sujet, sans laisser le formulaire choisir qui reçoit l'e-mail.
- [Alternative à EmailJS](https://ikiform.com/fr/guides/send-form-to-email/emailjs-alternative.md): Quittez EmailJS pour un formulaire de contact : pourquoi les clés côté navigateur sont un risque, ce qui change dans le code, et ce que vous perdez, comme la réponse automatique.
- [Next.js](https://ikiform.com/fr/guides/send-form-to-email/nextjs.md): Deux façons d'envoyer un formulaire Next.js par e-mail avec une Server Action : l'envoyer vous-même avec Resend ou Nodemailer, ou le transmettre à un backend.
