Deliverability
Les emails de test restent des emails : la boîte de réception n’est pas un bac à sable
Les emails de test restent des emails : la boîte de réception n’est pas un bac à sable
Tester votre configuration d’email est une bonne idée. La tester en bombardant de faux trafic de vrais fournisseurs de messagerie ? C’est moins intelligent. Voici comment valider votre flux de travail d’envoi sans générer de rebonds, de limitations, de pièges à spam ou de problèmes de réputation.
L’équipe de développement adore les tests. L’équipe marketing adore la prévisualisation. Les équipes produit adorent les environnements de test.
Cependant, les fournisseurs de messagerie n’apprécient pas du tout de recevoir 248 000 emails de « réinitialisation de mot de passe » pour une seule adresse Gmail parce que quelqu’un voulait voir ce qui se passerait.
Et c’est le problème avec les tests d’emails : il se passe toujours quelque chose.
Idées reçues sur les emails de test
Un email de test ne se volatilise pas dans un brouillard inoffensif d’assurance qualité. Si vous l’envoyez via un véritable flux d’emails, il se comporte comme un vrai email. Il est transféré, évalué, limité, différé, renvoyé (rebond), relancé, enregistré et, selon l’intensité de votre test, mémorisé. En d’autres termes : votre email ne s’est pas évaporé dans la nature. Il a pris son petit sac à dos et est parti chercher un foyer.
Votre intention est peut-être de « juste tester ».
Votre trafic, lui, dit peut-être : « Bonjour, je suis un robot défectueux qui a des problèmes de limites ».
Vos emails de test restent des emails
Faire des tests, c’est bien. S’il vous plaît, faites-en. Testez vos réinitialisations de mot de passe. Testez vos parcours d’inscription. Testez vos modèles. Testez votre intégration API. Testez votre soumission SMTP. Testez vos webhooks. Testez vos liens. Testez votre rendu. Testez toute votre belle petite machine avant qu’elle ne commence à envoyer des emails à de vrais humains.
Cependant, tester un email est différent de tester quelque chose qui reste dans votre propre application.
Lorsque votre test déclenche un véritable message sortant, vous ne vous contentez plus de tester votre application. Vous générez une véritable activité dans le flux d’emails. Et vous testez la patience des destinataires.
Cela signifie que les fournisseurs de messagerie voient :
- des messages répétés au même destinataire
- des volumes élevés vers un seul domaine
- des emails vers des adresses inexistantes
- des emails vers des domaines mal orthographiés
- des tentatives répétées
- des pics inhabituels
- des reports, des limitations et des blocages
- des rebonds qui affectent vos habitudes d’envoi
- des fonctions d’alerte qui envoient un email pour chaque succès, échec ou tentative
- des systèmes de production utilisant accidentellement une logique de notification de développement ou de test
- des alertes ininterrompues vers une seule adresse Gmail, une boîte de réception d’entreprise ou un alias partagé
- des notifications par email utilisées comme journaux au lieu de véritables alertes
- du trafic qui ressemble moins à de l’assurance qualité et davantage à un comportement abusif cherchant une porte dérobée
Gmail n’est pas assis là à se dire : « Oh, ils sont probablement en train de faire des tests d’assurance qualité, les pauvres chéris ».
Les fournisseurs de messagerie ne peuvent pas voir votre ticket Jira. Cependant, ils voient votre trafic.
Les « fausses » adresses ne le sont pas toujours
L’une des erreurs de test les plus courantes est de supposer qu’un domaine est faux parce que vous l’avez inventé.
Malheureusement, Internet ne consulte pas votre imagination avant d’enregistrer des domaines.
Ce domaine aléatoire que vous avez « inventé » pourrait appartenir à quelqu’un d’autre. Il pourrait être dirigé vers Google Workspace. Il pourrait utiliser Microsoft 365. Il pourrait être parqué, surveillé, expiré, racheté, bloqué par un sinkhole ou configuré d’une manière qui génère tout de même de véritables tentatives de livraison et de vrais signaux de mauvaise réputation.
Même lorsqu’un domaine n’accepte vraiment pas d’emails, vos messages peuvent tout de même générer des requêtes DNS, des tentatives de connexion, des relances, des rebonds et du bruit dans les journaux. Multipliez cela par des milliers (voire des centaines de milliers) et soudain, votre test inoffensif devient le problème de tout le monde avec un objet d’email douteux (croyez-le ou non, 100 000 emails qui disent juste « salut » à une seule adresse ne semblent pas aussi inoffensifs qu’on pourrait le penser).
Et puis il y a les domaines avec des fautes de frappe.
Les pièges à spam sont des adresses email utilisées pour identifier les expéditeurs ayant de mauvaises pratiques d’acquisition, de validation ou d’hygiène de liste. Spamhaus décrit les pièges à spam sur les domaines mal orthographiés comme des pièges sur des domaines qui ressemblent à des domaines courants, tels que les versions mal orthographiées des principaux fournisseurs de messagerie. Les emails envoyés vers ces pièges peuvent laisser penser que l’expéditeur essaie de joindre de vraies personnes, mais utilise de mauvaises données d’adresse.
Alors, si vous pensez être le premier petit malin à taper gmial.com, eh bien, vous avez tort, et Spamhaus vous réserve une petite surprise.
Arrêtez de tester la charge des fournisseurs de messagerie
Faire des tests de charge de votre application est une démarche responsable.
Tester accidentellement la charge de Gmail, Outlook, Yahoo ou du domaine d’entreprise de quelqu’un n’en est manifestement pas une.
Si vous devez vérifier que votre système peut gérer un trafic élevé, isolez les parties du système que vous êtes réellement en train de tester. Votre application devra peut-être simuler la génération de messages, la mise en file d’attente, les tentatives répétées, le rendu de modèle ou la gestion d’événements. Mais cela ne nécessite pas toujours d’essayer de livrer un vrai email.
Un bon plan de test d’emails sépare :
- les tests de performances de l’application
- les tests d’intégration API
- les tests de génération de messages
- les tests de modèle/contenu
- la validation des adresses
- les tests réels en boîte de réception
- les tests de délivrabilité
Ces éléments sont liés, mais ils ne sont pas identiques. Ils se ressemblent, mais ne sont pas pareils.
Si votre test d’application crée un véritable email sortant à chaque exécution, vous avez besoin de garde-fous. Limitez le taux du test. Utilisez le mode test. Utilisez un bac à sable. Utilisez la suppression interne. Utilisez de fausses données en toute sécurité. Assurez-vous qu’une boucle défectueuse ne se transforme pas en 300 000 réinitialisations de mot de passe pour Steve de la comptabilité.
Steve a assez souffert.
L’email n’est pas votre système d’alerte
Il existe une autre façon courante pour que « juste tester » se transforme en véritable problème de délivrabilité : les emails d’alerte.
Peut-être que quelqu’un de l’équipe de développement configure une fonction rapide pour s’envoyer un email chaque fois qu’un appel API échoue. Peut-être qu’une alerte de l’environnement de test suit accidentellement le code en production. Ou peut-être que chaque événement réussi envoie un email de confirmation à une seule adresse, parce qu’à un moment donné, quelqu’un a eu besoin de prouver que le système fonctionnait, puis tout le monde est passé à autre chose.
Pris individuellement, ces choix peuvent sembler inoffensifs. Un seul email d’alerte. Une seule boîte de réception surveillée. Une seule adresse Gmail. Un seul alias qui publie sur Slack. Une configuration « temporaire » que tout le monde promet de remplacer plus tard.
Puis, le passage en production a lieu.
Si votre logique d’alerte indique « envoyer un email immédiatement pour chaque événement », un système bruyant peut devenir un expéditeur carrément cacophonique. Soudain, une boîte de réception reçoit des milliers (voire des millions) d’alertes presque identiques. Le fournisseur de messagerie récepteur commence à différer ou à bloquer le trafic. Votre réputation d’expéditeur en prend un coup. Et pire encore, votre système d’alerte devient moins utile au moment précis où vous en avez le plus besoin.
Car une boîte de réception pleine d’alertes ne vous dit pas ce qui ne va pas.
Elle vous indique seulement que beaucoup de choses se sont produites.
Ce qui ressemble moins à de l’observabilité et plus à une machine à brouillard avec des horodatages.
Lorsque les alertes sont trop fréquentes, on arrête de les lire. Lorsque chaque erreur fait l’objet d’un email, un échec critique ressemble exactement à une erreur sans importance. Lorsqu’un fournisseur de messagerie commence à limiter vos alertes, votre vision interne du problème peut également être faussée. Vous pourriez penser avoir envoyé 50 000 alertes parce que le problème s’est produit 50 000 fois, alors que vous avez en réalité conçu un bazooka de notifications sans limites qui a transformé un problème en deux.
Et si l’alerte vraiment critique tente d’arriver derrière une montagne de bruit répétitif ? Bonne chance, petit email avec ton sac à dos. Bon voyage.
L’email peut être utile pour des notifications occasionnelles, des résumés et des mises à jour lisibles par les humains. Mais il ne doit pas être votre système de journalisation, votre principal outil de surveillance des incidents ni le premier domino d’une chaîne d’alerte critique.
Si vous devez utiliser l’email pour les alertes :
- Regroupez les événements. Un seul email indiquant « 15 000 erreurs se sont produites à la dernière minute » est plus utile que 15 000 emails.
- Ajoutez des périodes de pause et des limites de taux. Ne laissez pas une boucle défectueuse générer un nombre illimité d’emails.
- Ne remontez que ce qui compte vraiment. L’email doit être réservé aux alertes importantes, et non à chaque petit raté de votre système.
- Utilisez des outils de surveillance appropriés dans la mesure du possible. Les systèmes d’alerte spécialisés existent pour une bonne raison, à savoir : « S’il vous plaît, ne faites pas de Gmail votre plateforme de réponse aux incidents ».
- Envoyez vers des destinations contrôlées. Évitez d’acheminer un volume massif d’alertes vers des comptes Gmail personnels, des alias partagés ou des domaines d’entreprise qui peuvent avoir leurs propres limites de taux.
- Passez en revue les anciennes alertes. Si personne ne lit une alerte récurrente, supprimez-la, regroupez-la ou déplacez-la dans un endroit plus approprié.
- Séparez la journalisation des alertes. Les journaux ont leur place dans des outils de journalisation. Les alertes doivent indiquer aux humains quand une action est nécessaire.
Une bonne alerte doit rendre un problème plus clair. Si votre configuration d’alerte engendre des reports, des blocages, du bruit, de la confusion et un problème de réputation, félicitations ! Votre détecteur de fumée est lui aussi en feu.
Les tests ne vous donnent pas de passe-droit pour la réputation
Les fournisseurs de messagerie ne jugent pas vos intentions. Ils évaluent votre comportement.
Du côté de la réception, une boucle de test cassée et un modèle d’envoi abusif peuvent se ressembler fortement :
- Pourquoi cet expéditeur bombarde-t-il une seule messagerie ?
- Pourquoi envoient-ils d’énormes volumes à des comptes inexistants ?
- Pourquoi relancent-ils autant de trafic indésirable ?
- Pourquoi génèrent-ils des réinitialisations de mot de passe que personne n’a demandées ?
- Pourquoi envoient-ils des emails à des domaines qui ressemblent à des fautes de frappe ?
- Pourquoi gaspillent-ils les ressources des destinataires dans cette quête secondaire bizarre ?
- Pourquoi chaque email est-il libellé « Alerte urgente » et que pourtant personne ne les ouvre ?
Les tests peuvent tout de même consommer les ressources des fournisseurs de messagerie. Ils peuvent tout de même créer des schémas d’engagement négatifs. Ils peuvent tout de même tomber dans des pièges. Ils peuvent tout de même produire des rebonds. Ils peuvent tout de même déclencher des limitations. Ils peuvent tout de même donner un aspect négligé à votre domaine ou adresse IP.
Et être négligé n’est pas une excellente identité de marque. À moins que vous ne vous appeliez Joe.
Utilisez le bon test pour la bonne tâche
La stratégie de test la plus sûre commence par une question :
Qu’essayez-vous réellement de prouver ?
Car « envoyer un email réel pour voir ce qui se passe » n’est pas toujours la bonne réponse. Parfois, vous avez besoin de savoir si votre application peut appeler l’API. Parfois, vous avez besoin de savoir si un modèle s’affiche correctement. Parfois, vous avez besoin de valider une adresse. Parfois, vous avez besoin de confirmer qu’une véritable boîte de réception reçoit bien les emails.
Ce sont des tests différents. Ils nécessitent des outils différents.
Si vous testez votre intégration API Mailgun, utilisez le mode test
Le Mode test vous permet de soumettre un message avec le paramètre o:testmode défini sur yes ou true. Mailgun accepte le message mais ne l’envoie pas réellement, ce qui est pratique pour tester les appels API et la génération de messages sans envoyer de vrais emails.
Cela signifie que vous pouvez confirmer que votre application crée et soumet les messages avec succès sans faire de Gmail votre environnement de test.
Petite remarque concernant la facturation : les messages envoyés en mode test peuvent tout de même être facturés. Vérifiez donc votre abonnement et vos prévisions d’utilisation avant de transformer votre suite de tests en canon à spam.
Si vous testez la soumission SMTP, utilisez l’en-tête drop-message
Pour les tests SMTP, Mailgun prend en charge l’en-tête X-Mailgun-Drop-Message, ce qui permet à Mailgun d’accepter le message sans le livrer. C’est bien plus propre que d’envoyer de vrais messages de test à un fournisseur de messagerie juste pour confirmer que votre configuration SMTP fonctionne.
En d’autres termes : vous pouvez tester la tuyauterie sans asperger d’eau toute la moquette. Vos voisins apprécieront.
Si vous effectuez de petits tests réels, utilisez un domaine bac à sable
Mailgun Les domaines bac à sable sont conçus pour des tests contrôlés. Ils nécessitent des destinataires autorisés, ce qui limite vos premiers tests aux adresses que vous avez explicitement approuvées. Pour utiliser les domaines bac à sable, ajoutez des destinataires autorisés depuis la page de configuration du domaine.
Utilisez-les pour tester si « le message arrive bien ».
Ne les utilisez pas comme une faille pour effectuer des tests de charge. Le bac à sable sert à s’amuser, il ne doit pas servir de litière pour les chats du quartier.
Si vous testez le rendu, les liens ou l’accessibilité, utilisez Inspect
Si votre vraie question est « cet email s’affiche-t-il correctement ? », alors envoyer des milliers de messages réels est une méthode complètement disproportionnée.
Mailgun Inspecter inclut des prévisualisations d’emails, la validation des liens, la vérification des images et des tests d’accessibilité afin que vous puissiez détecter les problèmes de qualité avant l’envoi.
En d’autres termes : ne forcez pas les fournisseurs de messagerie à devenir, à leur insu, votre service d’assurance qualité. Ils sont déjà bien occupés à tous nous juger.
Si vous testez la validité d’une adresse, utilisez Validate
Si votre question est « cette adresse semble-t-elle pouvoir recevoir des emails ? », la réponse n’est pas « envoyez-lui quelque chose et regardez si elle hurle ».
Mailgun Valider prend en charge la validation des adresses via l’API, y compris la validation d’adresses individuelles.
C’est important car envoyer des emails à de mauvaises adresses gaspille des ressources, crée des rebonds et peut nuire à votre réputation d’expéditeur. La page produit Validate de Mailgun associe explicitement les mauvaises adresses au gaspillage d’efforts, aux dommages causés à la réputation et au risque de liste de blocage.
Une petite carte de test bien pratique
| Ce que vous testez | Meilleure approche |
| Mon application peut-elle appeler Mailgun avec succès ? | Utiliser le mode test de Mailgun |
| Puis-je soumettre via SMTP ? | Utiliser X-Mailgun-Drop-Message |
| Puis-je envoyer un petit test réel ? | Utiliser un domaine bac à sable avec des destinataires autorisés |
| Le modèle s’affiche-t-il correctement ? | Utiliser Mailgun Inspect |
| Les liens sont-ils rompus ? | Utiliser Mailgun Inspect |
| Cette adresse email est-elle valide ? | Utiliser Mailgun Validate |
| Mon application peut-elle gérer un volume de requêtes élevé ? | Tester la charge de votre application sans générer d’emails sortants réels |
| Mes gestionnaires d’événements fonctionnent-ils ? | Utiliser des envois de test contrôlés, des balises et des chemins de test sans livraison dans la mesure du possible |
| Un événement s’est-il produit ? | L’enregistrer dans un outil de journalisation ou de surveillance |
| Beaucoup d’erreurs se sont-elles produites ? | Envoyer une alerte consolidée ou une notification dans le tableau de bord |
| Y a-t-il vraiment le feu ? | Utiliser un système d’alerte spécialisé avec des règles de remontée |
| Ai-je besoin d’alertes par email ? | Ajouter un regroupement, des pauses, des limites de taux et des seuils de gravité clairs |
Quand vous avez vraiment besoin d’emails de test réels
Parfois, oui, vous avez besoin d’envoyer un vrai email vers une vraie boîte de réception.
C’est normal. Faites-le simplement de manière réfléchie.
Utilisez des boîtes de réception que vous contrôlez. Conservez un volume faible. Évitez d’envoyer le même message à plusieurs reprises à un seul destinataire. Surveillez vos journaux. Arrêtez-vous dès que vous observez des reports ou des limitations. Ne testez pas avec des adresses aléatoires, même si vous pensez les avoir inventées. N’utilisez pas de domaines avec des fautes de frappe. N’utilisez pas d’adresses extraites du Web. N’utilisez pas d’anciens dossiers clients. Ne partez pas du principe que « interne » veut dire « sûr » si votre domaine interne est hébergé par un grand fournisseur de messagerie.
Une boîte de réception d’entreprise Google Workspace reste connectée à l’infrastructure de Google. Un domaine Microsoft 365 reste connecté à l’infrastructure de Microsoft. Non, les domaines d’entreprise et les domaines de messagerie grand public ne sont pas identiques dans les moindres détails du backend. Mais du point de vue de la réputation de l’expéditeur, il est particulièrement imprudent de supposer que la main gauche du fournisseur de messagerie fera semblant de n’avoir pas vu ce que la main droite vient de différer.
La boîte de réception a de la mémoire.
Ou du moins, elle consigne les choses d’une manière qui devrait nous obliger à nous comporter comme si elle s’en souvenait.
De meilleures habitudes de test, moins de sueurs froides de délivrabilité
Avant de lancer votre prochain test, demandez-vous :
Cet email doit-il être livré ou juste accepté ?
S’il a seulement besoin d’être accepté, utilisez le mode test ou le comportement de l’en-tête SMTP drop-message.
Cela nécessite-t-il un vrai destinataire ?
Si oui, utilisez une adresse contrôlée dont vous êtes le propriétaire et maintenez un faible volume.
Suis-je en train de tester la qualité de l’adresse ?
Utilisez la validation au lieu de l’envoi.
Suis-je en train de tester le rendu ou les liens ?
Utilisez des outils d’inspection avant envoi.
Cette boucle pourrait-elle devenir incontrôlable ?
Ajoutez des limites de taux, des plafonds et une surveillance avant de faire vos tests.
Ces « fausses » adresses pourraient-elles appartenir à quelqu’un d’autre ou déclencher des pièges ?
Partez du principe que oui. Internet est hanté.
Est-ce que j’utilise l’email comme système de journalisation ?
Ne le faites pas. Journalisez vos données dans un endroit approprié ; envoyez un email à un humain uniquement lorsqu’une action est nécessaire.
Mon flux d’alerte envoie-t-il un email par événement en production ?
Ajoutez un regroupement, des pauses et des limites de taux avant qu’un incident ne se produise et que vous en subissiez les conséquences.
Les alertes de développement/test pourraient-elles me suivre discrètement en production ?
Partez du principe que oui. Assurez-vous que ce n’est pas possible.
Dernière remarque : testez comme s’il s’agissait d’un véritable email
Les tests font partie intégrante d’un envoi responsable. Nous voulons que vous fassiez des tests. Nous vous supplions de faire des tests. Des emails de production non testés, c’est comme envoyer une invitation au chaos.
Mais effectuer des tests de manière responsable signifie savoir quelles parties de votre système ont besoin d’un vrai email et quelles parties nécessitent juste une réponse API réussie, un modèle affiché correctement, une adresse validée, un événement simulé ou un envoi contrôlé dans un bac à sable.
Car une fois qu’un message entre dans le flux d’emails, ce n’est plus « juste un test ».
C’est un email.
Et un email laisse des traces (tout en portant un petit sac à dos).