zylior
← Blog

Liste email saine : double opt-in + désinscription 1-clic (RFC 8058)

Une liste email "propre" ne se mesure pas au nombre d'abonnés, mais à ce qui arrive quand tu cliques sur Envoyer. Si 2 % de tes envois bouncent et que Gmail t'envoie en spam au bout de trois campagnes, le problème n'est presque jamais ton contenu : c'est ta collecte et ta gestion de désinscription. Voici les deux briques qui changent tout, et comment les poser concrètement.

Double opt-in : confirmer avant d'ajouter

Le single opt-in ajoute l'adresse dès que le formulaire est soumis. Problème : tu hérites des fautes de frappe (`gmial.com`), des adresses jetables, des bots qui remplissent tes formulaires, et des inscriptions malveillantes (quelqu'un inscrit l'adresse d'un tiers). Toutes ces adresses pourrissent ta réputation : bounces, spam traps, plaintes. Le double opt-in ajoute une étape : tu envoies un email de confirmation avec un lien unique, et tu n'inscris l'abonné que s'il clique.

  1. Soumission du formulaire → tu crées un enregistrement en statut `pending` (pas `confirmed`).
  2. Tu génères un token signé à durée de vie courte (24-48 h) et tu l'envoies dans le lien de confirmation.
  3. Au clic, tu vérifies le token, tu passes le statut à `confirmed` et tu horodates le consentement (date, IP, user-agent).
  4. Pas de clic dans le délai → l'enregistrement `pending` est purgé. Il n'a jamais reçu une seule newsletter.

Bénéfice mesurable : un email de confirmation envoyé à `gmial.com` bounce avant d'entrer dans ta liste. Une adresse bidon ne clique jamais. Tu transformes ta passerelle d'inscription en filtre de qualité gratuit. Le coût : tu "perds" 10 à 30 % d'inscrits qui ne confirment pas — mais ce sont précisément ceux qui auraient plombé ton taux d'ouverture et tes plaintes.

Garde la preuve de consentement (timestamp + IP + libellé exact de la case cochée). En cas de plainte RGPD ou de réclamation d'un fournisseur d'envoi, c'est ce log qui te sauve. Sans lui, tu ne peux pas prouver que l'abonné a demandé à recevoir tes emails.

Désinscription 1-clic : List-Unsubscribe + RFC 8058

Depuis février 2024, Gmail et Yahoo l'exigent pour tout expéditeur de masse (~5000 messages/jour) : un mécanisme de désinscription en un seul clic, sans page intermédiaire, sans login. Ce n'est plus une politesse, c'est une condition de délivrabilité. Le `List-Unsubscribe` (RFC 2369) liste les méthodes ; le `List-Unsubscribe-Post` (RFC 8058) déclare que le client peut envoyer un POST automatique — c'est ça le vrai "1-clic" : le bouton natif de Gmail/Apple Mail déclenche un POST sans ouvrir ton site.

List-Unsubscribe: <https://zylior.com/u/unsub?t=SIGNED_TOKEN>, <mailto:unsub@zylior.com?subject=unsub-SIGNED_TOKEN>
List-Unsubscribe-Post: List-Unsubscribe=One-Click
Piège fréquent : un endpoint qui exige une session ou renvoie une page de "préférences" sur le POST one-click. Gmail considère alors que la désinscription a échoué, et ça compte contre ta réputation autant qu'une plainte. Teste le POST avec curl, pas seulement le clic depuis un vrai mail.

Adresse postale et suppression scopée

D'abord, l'adresse postale physique : CAN-SPAM l'impose pour les envois commerciaux, et son absence est un signal négatif pour les filtres anti-spam. Mets-la dans le pied de page, à côté du lien de désinscription — une boîte postale ou l'adresse de la société suffit. Ensuite, la suppression scopée : en multi-tenant, un abonné peut exister dans plusieurs contextes (newsletter, notifications produit, onboarding d'un tenant). Une désinscription doit retirer l'abonné du bon périmètre, pas le supprimer globalement ni le laisser sur les autres listes par erreur.

Pourquoi ça protège ta délivrabilité

Les fournisseurs (Gmail, Microsoft, Yahoo) notent les expéditeurs sur des signaux concrets : taux de plaintes (vise < 0,1 %, alerte rouge au-delà de 0,3 %), taux de bounce, présence de spam traps, et facilité de désinscription. Le double opt-in écrase les bounces et les traps à la source ; le 1-clic transforme les "je marque en spam" (qui te coûtent cher) en désinscriptions propres (qui ne te coûtent rien). Tu protèges la réputation de ton domaine d'envoi, donc l'inbox de tous tes futurs emails — y compris les transactionnels.

Mesure avant/après : surveille le taux de plaintes via Google Postmaster Tools et le taux de bounce de ton ESP. Si tu passes de single à double opt-in, tu devrais voir les bounces durs chuter sous 1-2 % en quelques campagnes. C'est le KPI qui dit que ta passerelle filtre vraiment.

En pratique : pose le double opt-in dès aujourd'hui sur ton formulaire (statut `pending` + token + purge), ajoute les deux en-têtes `List-Unsubscribe` avec un endpoint POST one-click testé au curl, colle ton adresse postale au pied de page, et modélise le consentement par liste plutôt que par abonné. Ces quatre changements ne demandent pas une refonte — quelques heures de dev — et ce sont eux qui décident si tu finis dans l'inbox ou dans l'onglet Promotions. Commence par celui qui te manque le plus.

La newsletter

En t’inscrivant, tu acceptes de recevoir la newsletter Zylior. Désinscription en 1 clic dans chaque email.