Foire aux questions

Les questions que l'on nous pose réellement — par les développeurs qui intègrent l'API et par les équipes qui doivent répondre d'un fournisseur par écrit. Les réponses décrivent la plateforme telle qu'elle fonctionne, y compris là où cela ne joue pas en notre faveur.

36 questions  ·  Mise à jour 30 octobre 2026

Configuration

Envoi et configuration

Peut-on envoyer par SMTP, ou seulement par l’API ?

Les deux, et par le même chemin. Le point de terminaison REST accepte du JSON ; le relais SMTP s’authentifie avec une clé d’API puis soumet par le même code. Tout ce que la clé détermine — l’identité d’expédition, la politique de chiffrement, le comportement de désabonnement — s’applique de façon identique dans les deux cas. Il n’y a aucune configuration propre au SMTP à maintenir en parallèle.

Quels sont les paramètres SMTP ?

Hôtemail.zedmail.com
Port465 (TLS implicite) ou 2587 (STARTTLS)
Utilisateurvotre clé d’API
Mot de passela même clé d’API

Nous n’utilisons pas le port 25. Si votre hébergeur bloque le port 25 en sortie, ce n’est pas un obstacle à régler avant de pouvoir envoyer : un client a attendu un mois un déblocage dont il n’avait pas besoin. Utilisez le 465 ou le 2587.

Quels enregistrements DNS dois-je publier ?

Deux CNAME pour DKIM et une inclusion SPF, à ajouter une seule fois par domaine d’envoi. Les CNAME pointent vers les mêmes cibles pour tous les clients : une rotation de clé de notre côté ne vous demande donc jamais de retoucher votre DNS.

Nous vous indiquons les enregistrements exacts lors de l’ajout du domaine, et nous les vérifions avec vous ensuite plutôt que de vous laisser interpréter un délai de propagation.

Peut-on envoyer depuis un sous-domaine ?

Oui, et pour du courriel applicatif c’est généralement préférable. Un sous-domaine s’ajoute exactement comme un domaine, et DKIM signe avec ce sous-domaine : DMARC passe par l’alignement DKIM et votre domaine organisationnel conserve sa propre politique stricte.

Un seul compte peut-il porter plusieurs domaines et clés ?

Oui, sans plafond fixe — un client exploite neuf domaines sur un seul compte. Les agences et les produits multilocataires préfèrent généralement une clé par client ou par environnement, ce qui rend aussi chaque configuration indépendante : la politique de chiffrement et le comportement de désabonnement sont des propriétés de la clé, non du compte.

Chaque clé doit-elle être rattachée à une seule adresse d’expéditeur ?

Non. Rattacher une clé à une seule adresse est une option, pas une règle, et elle est active par défaut parce que la plupart des gens veulent un identifiant qui ne puisse jamais envoyer sous une autre identité. Laissez ce champ vide et la clé peut envoyer depuis n’importe quelle adresse d’un domaine que vous avez vérifié ; toute autre adresse est refusée plutôt que réécrite silencieusement.

Y a-t-il une tranche gratuite ?

Les 200 premiers messages de chaque jour sont inclus sans frais et sans moyen de paiement. Cette tranche ne s’accumule pas — une journée creuse ne prête pas son reste à une journée chargée — et elle continue de s’appliquer une fois une carte enregistrée : seul le volume supérieur est facturé. Les tarifs courants figurent sur la page d’accueil.

Que se passe-t-il si ma logique de reprise envoie deux fois le même message ?

Rien, à condition de transmettre votre propre idempotency_key à l’envoi — un numéro de commande, un identifiant de tâche, tout ce qui est unique à ce message. Une reprise identique dans les 24 heures renvoie la première réponse, avec le code 200 et un en-tête Idempotent-Replay: true au lieu du 202 habituel, et aucun deuxième message ne part.

Les cas limites sont délibérés. Une reprise pendant que la première tentative est encore en cours répond 409 — la seule réponse qui ne puisse pas envoyer deux fois. La même clé avec un message différent est refusée avec un 422 : rendre discrètement l’identifiant du premier message signifierait que le second n’est jamais parti et que personne ne l’a su. Et un envoi que nous refusons libère sa clé : une adresse invalide ou un domaine non vérifié se corrige et se reprend avec la même clé, sans impasse.

Sans clé, le comportement est inchangé : aucune intégration existante n’est affectée. L’en-tête Idempotency-Key fonctionne aussi, s’il convient mieux à votre client HTTP.

Conformité

Délivrabilité et LCAP

À quoi servent les flux transactionnel et diffusion, et lequel choisir pour ma clé ?

Une clé déclare à quoi elle sert. Transactionnel signifie que c’est le geste du destinataire qui a provoqué le message — un reçu, une réinitialisation de mot de passe, un avis d’expédition. Diffusion signifie que c’est vous qui avez choisi le moment, vers plusieurs personnes à la fois — une infolettre, une annonce, une campagne. Le flux se choisit à la création de la clé.

Le flux appartient à la clé, pas à la requête. C’est voulu, et c’est ce qui le fait fonctionner en SMTP : notre relais s’authentifie avec votre clé d’API et soumet par le même code que le point de terminaison REST, donc un flux porté par la clé n’exige aucun en-tête particulier. Les fournisseurs qui ont mis le flux dans un champ de requête ont dû ajouter ensuite des identifiants SMTP propres à chaque flux, parce que certains clients SMTP ne peuvent pas poser d’en-tête personnalisé du tout.

Trois conséquences découlent de ce choix :

  • Le pied de page de désabonnement. La diffusion en porte toujours un ; le transactionnel n’en porte jamais. Le flux en décide au lieu d’en hériter : le réglage de pied de page d’une clé n’est consulté que si cette clé n’a pas de flux.
  • La portée d’un désabonnement. Un désabonnement de la diffusion fait taire la diffusion et laisse le transactionnel intact — c’est tout l’objet : refuser votre infolettre ne doit pas empêcher quelqu’un de recevoir ses propres réinitialisations de mot de passe. Sur une clé transactionnelle, vous pouvez restreindre encore davantage, à cette seule clé.
  • La conservation. Chaque flux peut conserver les données de message pendant une durée différente. Voir combien de temps nous conservons le contenu des messages.

Les rejets et les plaintes restent à l’échelle du compte sur les deux flux, et c’est voulu. Une boîte morte est morte quel que soit le flux qui la réessaie, et une plainte pour pourriel est une affirmation sur vous et ce destinataire plutôt que sur un flux. La clientèle partage des adresses d’envoi : une adresse réessayée sans fin sur l’autre flux dépense la réputation de tout le monde, pas seulement la vôtre.

Lequel choisir ? Si c’est le geste du destinataire qui a provoqué le message, transactionnel. Si c’est vous qui avez décidé du moment, diffusion. L’obligation de désabonnement de la LCAP porte sur les messages électroniques commerciaux, et un reçu n’en est pas un — c’est précisément pourquoi les deux flux sont traités différemment. Les clés créées avant l’existence des flux n’en portent aucun et se comportent exactement comme avant : rien n’a été réécrit sous elles.

Puis-je placer le lien de désabonnement dans ma propre formulation, où je veux ?

Oui. Placez {{unsubscribe_url}} n’importe où dans votre corps HTML ou texte et nous le remplaçons par l’adresse de désabonnement propre à ce destinataire :

<a href="{{unsubscribe_url}}">Ne plus recevoir ces courriels</a>

Cela fonctionne dans les deux parties du message, avec l’échappement correct pour chacune, et les accolades tolèrent les espaces. La substitution se fait à l’envoi et non à l’acceptation par l’API, parce que le jeton désigne un destinataire précis et n’existe pas avant.

L’usage de la balise tient lieu de votre désabonnement : notre pied de page n’est donc pas accolé en dessous — y compris quand votre formulation est dans une langue que notre détection ne reconnaîtrait pas.

Pourquoi ceci plutôt qu’un lien vers votre propre système. Ce que la plupart des expéditeurs veulent maîtriser, c’est la formulation et l’emplacement, pas la plomberie. Un lien vers votre propre point de terminaison fait sortir ce destinataire de notre liste de suppression, du point de terminaison de désabonnement en un clic qu’exigent Gmail et Yahoo des expéditeurs de masse, et du court sondage que nous présentons au moment du départ. La balise vous donne la formulation et conserve les trois.

Nous avons notre propre mécanisme. Peut-on désactiver le vôtre ?

Oui, par clé ou pour tout le compte. Vous constaterez peut-être qu’il s’efface déjà : avant d’ajouter quoi que ce soit, nous examinons les parties HTML et texte de votre message à la recherche d’un mécanisme existant, dans plusieurs langues, et nous supprimons notre pied de page lorsque vous en avez un. Il n’a jamais été conçu pour s’ajouter sous le vôtre.

Si j’utilise mon mécanisme, les en-têtes List-Unsubscribe changent-ils ?

Pour le courrier de diffusion, non — ils restent sur chaque message, parce que Gmail et Yahoo exigent le désabonnement en un clic des expéditeurs de masse et que les retirer nuirait à votre placement plutôt que de protéger votre flux.

Pour le courrier transactionnel, ils ne sont pas envoyés du tout, et c’est voulu. Une réinitialisation de mot de passe n’est pas du courrier de masse : l’exigence ne l’a jamais visée, mais l’en-tête affichait quand même le bouton de désabonnement du fournisseur, et ce bouton ne demande aucune confirmation. Un destinataire qui l’utilisait sur une facture cessait de recevoir toutes vos factures, sans que rien à l’écran ne le lui dise. Activez le désabonnement par clé sur une clé transactionnelle et les en-têtes reviennent, limités à cette seule clé — une conséquence assez petite pour valoir la peine d’être offerte. Dans les deux cas, la balise {{unsubscribe_url}} fonctionne sur les deux flux, et elle mène à une page qui annonce ce qu’elle fera avant de le faire.

La conséquence mérite d’être prévue. Un destinataire qui utilise le bouton de désabonnement de son fournisseur est enregistré comme désabonné chez nous, et votre système l’ignorera à moins de consommer le webhook unsubscribed. En le consommant, les deux restent alignés et votre propre mécanisme demeure celui que vos utilisateurs voient.

Par ailleurs, chaque message porte un en-tête List-Help qui mène à une page écrite pour vos destinataires plutôt que pour vous. Elle indique que c’est vous qui avez envoyé le message et que nous n’avons fait que le transporter, que vous seul détenez la trace de la façon dont leur adresse vous est parvenue, et ce qu’ils peuvent faire sur le flux d’où vient le message. Elle nomme votre domaine d’envoi et rien du destinataire.

Qu’est-ce qui est supprimé automatiquement ?

Un destinataire qui se désabonne, une boîte qui rebondit de façon définitive, et une adresse qui signale un message comme indésirable. La suppression est appliquée à l’envoi : une tentative ultérieure vers cette adresse est refusée plutôt que livrée puis regrettée.

Les refus de réputation et les échecs temporaires ne sont délibérément pas traités comme des boîtes mortes : un fournisseur qui nous ralentit, ou une plainte d’authentification, ne dit rien de l’existence de l’adresse.

Quelle est la portée d’un désabonnement ?

Un désabonnement peut être rattaché à une seule clé d’API plutôt qu’à tout le compte, ce qui compte si vous envoyez des types de courriels réellement distincts : refuser une infolettre ne devrait pas refuser du même geste ses propres réinitialisations de mot de passe. Les plaintes pour indésirable et les rebonds définitifs valent pour tout le compte et ne sont pas réductibles : une plainte est une déclaration sur vous et ce destinataire, et une boîte inexistante l’est pour toutes vos clés.

Une boîte pleine retire-t-elle un abonné de ma liste ?

Pas par nous. Seuls les rebonds définitifs déclenchent le webhook bounced ; boîte pleine, listes grises et reports de réputation mettent à jour la fiche du message sans émettre d’événement. Les gestionnaires de listes ont tendance à traiter tout événement de rebond comme définitif, et ce comportement retirait discrètement des centaines de contacts valides des listes de nos clients.

Intégration

Webhooks et données en retour

Quels événements puis-je recevoir ?

delivered, bounced, blocked, complained, unsubscribed, opened et clicked. Chaque charge utile porte event, un identifiant de message et un horodatage ; les événements qui ont du détail ajoutent un objet data, et ceux qui n’en ont pas l’omettent — traitez-le donc comme optionnel.

unsubscribed est l’exception à lire deux fois : il ne porte pas d’identifiant de message, parce qu’un désabonnement est une action contre une adresse et non le rebond d’un message précis, et parce que le lien reste valide longtemps après que ce message a quitté votre fenêtre de conservation. Lisez l’adresse dans data.

Un point de terminaison peut-il être rattaché à une seule clé ?

Oui. Un point de terminaison peut être rattaché à une clé, de sorte que les événements d’un environnement de préproduction atteignent un récepteur de préproduction et ceux de production atteignent la production, sans démultiplexage intermédiaire. Laissez-le non rattaché et il reçoit tout ce qui concerne le compte, comme c’était le cas avant l’existence de l’option.

Une URL fournie avec chaque message n’est pas proposée, et ce n’est pas un oubli : cela reviendrait à publier vers le point de terminaison que la requête indique, avec un état de reprise pour des adresses qui n’ont peut-être jamais existé.

Comment savoir de quelle clé provient un événement ?

Chaque événement que nous pouvons rattacher à une clé porte l’identifiant propre de cette clé. Ce n’est pas le secret et il n’en dérive pas, il survit à une rotation, et il peut être journalisé et conservé sans risque — ce qui en fait une bonne valeur de routage si vous préférez un seul point de terminaison partagé à plusieurs rattachés.

Puis-je joindre mes propres identifiants à un message et les récupérer ?

Oui, de deux manières, et le choix dépend d’une seule question : quelque chose à la réception doit-il lire votre identifiant ?

Si non, utilisez les étiquettes (tags) : jusqu’à dix par message, cinquante caractères chacune, conservées avec le message et retournées dans les événements de livraison et d’échec. Elles ne quittent jamais notre côté, donc le destinataire ne les voit pas. Deux limites à prévoir : elles sont ramenées à ces bornes plutôt que refusées, de sorte qu’un identifiant composite long peut arriver tronqué ; et comme unsubscribed ne porte pas de message, il ne porte pas d’étiquettes non plus — utilisez l’identifiant de clé pour rattacher un désabonnement.

Si oui, utilisez des en-têtes personnalisés (headers) : ils partent avec le message, là où un système à la réception peut les lire, et reviennent dans chaque événement webhook. Un seul champ fait les deux ; ailleurs il faut généralement un en-tête pour le message et un champ de métadonnées distinct pour le retour.

"headers": { "X-Survey-ID": "survey-8842" }

Jusqu’à dix en-têtes, 64 octets par nom, 200 octets par valeur, 2 Ko au total. Contrairement aux étiquettes, un en-tête invalide fait échouer l’envoi avec un code 422 qui le nomme : rien n’est tronqué ni échappé, vous n’aurez donc jamais un en-tête que vous croyez avoir défini sans l’avoir fait. Les en-têtes que nous définissons nous-mêmes (From, Subject, Message-ID, Content-*, List-* et le reste) sont refusés plutôt que remplacés.

Deux points de jugement. Un en-tête voyage avec le message : il est visible par le destinataire, par son fournisseur de messagerie et par toute personne à qui le courriel est transféré — gardez donc la valeur opaque. Et un en-tête personnalisé n’est pas couvert par la signature DKIM, ce qui convient à un identifiant de corrélation mais ne doit pas être traité comme une preuve d’origine.

Les livraisons de webhooks sont-elles signées et reprises ?

Chaque point de terminaison a son propre secret, affiché une seule fois à la création, et les livraisons sont signées avec celui-ci afin que votre récepteur puisse rejeter ce qu’il ne peut pas vérifier. Les échecs sont repris avec un délai croissant ; un point de terminaison que vous désactivez cesse de recevoir plutôt que d’accumuler un arriéré.

Hébergement

Où vivent vos données

Où les données de messages sont-elles conservées ?

Au Canada. L’infrastructure d’envoi et la base de données se trouvent dans la région de Beauharnois, au Québec, et les sauvegardes chiffrées hors site sont également au Québec. Le service est administré depuis Ottawa, en Ontario.

Si vous ou votre client êtes assujettis à la Loi 25 du Québec, notez que l’administration depuis l’extérieur du Québec est un facteur de votre propre évaluation des facteurs relatifs à la vie privée. Nous vous fournirons ce qu’il vous faut pour la mener plutôt que de vous laisser le déduire.

Qui exploite Zedmail ?

Ozonagram Ltd, une société canadienne constituée au fédéral. Aucune société mère, aucun investisseur exerçant le contrôle, et aucun bureau ni personnel hors du Canada.

Nos données sont-elles exposées au CLOUD Act américain ?

Selon notre lecture, non, et le raisonnement porte sur la structure des sociétés plutôt que sur des assurances. Le CLOUD Act atteint les fournisseurs soumis au droit américain — les sociétés américaines et les filiales de groupes américains. Il descend depuis une société mère américaine ; il ne remonte pas depuis une société mère étrangère.

Notre hébergement est assuré par un groupe français, par l’entremise de sa société canadienne, et l’activité américaine de ce groupe est une filiale à gouvernance distincte. Le groupe déclare dans son document d’enregistrement universel que seule sa filiale américaine est assujettie à ces règles, parce que les activités hors États-Unis en sont séparées, et son analyse publiée dit la même chose de la société canadienne : hors de portée, l’entraide judiciaire étant la voie qu’une autorité américaine devrait emprunter.

Qui sont vos sous-traitants ?

Cinq, et un seul peut lire vos courriels : l’hébergement. Les adresses des destinataires, le contenu des messages et les journaux de livraison sont stockés au Canada, dans des centres de données OVHcloud au Québec, auprès d’OVH Hébergement Inc. Aucun sous-traitant n’est autorisé à stocker ou à consulter ces renseignements hors du Canada.

Une seconde copie des sauvegardes chiffrées est conservée par CanHost Inc. à Kelowna, en Colombie-Britannique, afin qu’une défaillance chez un fournisseur ne puisse emporter à la fois le service et les moyens de le reconstruire. Cette copie est du texte chiffré : la clé de déchiffrement n’est jamais remise à CanHost, elle est gardée hors ligne et n’a jamais été déposée sur un serveur. Ajouté le 1er novembre 2026.

Les trois autres n’en reçoivent rien. Paddle (Royaume-Uni) est notre marchand officiel et ne reçoit que les données de compte et de facturation — jamais d’adresses de destinataires, de contenu de message ni de journaux de livraison. Bunny.net et Hostinger publient le DNS autoritatif de nos propres domaines; les enregistrements DNS sont publics par nature et ne contiennent aucun renseignement personnel.

Aucun service d’envoi, de relais ou de filtrage antispam tiers ne figure dans le chemin. Les serveurs de messagerie sont nos propres logiciels sur nos propres machines, et l’analytique est auto-hébergée. La liste autoritative est l’annexe C de notre entente de traitement des données, qui prévaut si ce résumé et l’entente diffèrent.

Quelqu’un à l’extérieur du Canada a-t-il accès à vos systèmes ?

Non — y compris les sous-traitants indépendants.

Signerez-vous une entente de traitement des données ?

Il en existe une, publiée à zedmail.com/dpa.php. Elle fait partie des conditions et est acceptée avec elles sans signature, et nous en signerons un exemplaire si votre processus en exige un au dossier.

Combien de temps conservez-vous le contenu des messages ?

C’est vous qui choisissez : de 7 à 365 jours, réglé sur le compte et, si vous le souhaitez, séparément pour chaque flux — une fenêtre courte sur la diffusion et une plus longue sur les reçus que vous pourriez avoir à produire plus tard. Au terme de la fenêtre, toute la fiche disparaît d’un bloc : destinataire, objet, corps et statut de livraison.

Le plancher est de sept jours et non d’un seul, pour une raison qui mérite d’être connue : en dessous, un rejet peut arriver après la disparition de la fiche du message auquel il se rattache, et l’adresse ne serait alors jamais mise en suppression.

Trois exceptions, parce qu’une réponse complète est plus utile qu’une réponse courte :

  • Les sauvegardes chiffrées ne sont pas modifiées lors d’une suppression : une donnée supprimée y demeure jusqu’à l’expiration de la sauvegarde — au plus 90 jours.
  • Les messages que nous refusons à la validation sont journalisés séparément, avec l’adresse du destinataire et le code d’erreur mais sans contenu, pendant 30 jours, afin que « pourquoi mes envois échouent-ils ?» ait une réponse.
  • Les enregistrements de suppression persistent par conception. L’autre choix serait d’oublier un désabonnement et d’écrire à nouveau à cette personne.

Le courriel est-il chiffré en transit ? Peut-on l’exiger ?

Chaque message est chiffré en transit dès que le serveur destinataire le permet. Vous pouvez aussi l’exiger par clé : un message destiné à un serveur incapable d’offrir un chiffrement vérifié n’est pas envoyé plutôt qu’envoyé en clair, et nous vous indiquons quels destinataires sont concernés.

Pour les grands fournisseurs grand public, c’est appliqué de toute façon, parce qu’ils publient des politiques selon lesquelles leurs serveurs ne devraient jamais accepter de courriel non chiffré, et nous les y tenons.

En combien de temps nous signaleriez-vous une atteinte à la sécurité ?

Dans les 72 heures suivant la prise de connaissance, engagement inscrit aux conditions : ce que nous savons et ce que nous faisons. C’est à vous de décider si les autorités ou les personnes concernées doivent être avisées, et notre rôle est de vous donner de quoi en décider.

Service

Fiabilité et engagements

Quelle disponibilité garantissez-vous, et est-ce écrit ?

99,5 % par mois sur les points de soumission, mesurés par intervalles de cinq minutes, avec crédits de service en cas de manquement et exclusions énoncées. C’est l’article 6 des conditions, et non quelque chose fourni sur demande ; vous pouvez le confronter à une surveillance exploitée par un tiers à status.zedmail.com.

Comment serions-nous informés d’une panne ?

Les comptes touchés reçoivent un courriel et la page d’état est mise à jour. Par ailleurs, et automatiquement : si l’envoi est un jour suspendu sur votre compte — pour un taux de rebond ou de plainte au-dessus du seuil, par exemple — vous recevez immédiatement un courriel indiquant la raison, plutôt que de le découvrir par des appels d’API en échec.

Quel préavis aurions-nous si Zedmail cessait ses activités ?

Au moins 90 jours par écrit, au contact de facturation et par un avis dans le tableau de bord. C’est l’article 7 des conditions, et l’engagement dépasse le préavis : le service fonctionne normalement pendant toute cette période, y compris l’engagement de disponibilité ; rien n’est facturé pour une période postérieure à l’arrêt ; tout crédit prépayé non utilisé est remboursé ; et vous pouvez exporter vos données d’envoi, vos journaux de livraison et vos listes de suppression tout du long.

Ce dernier point mérite d’être vérifié chez tout fournisseur que vous évaluez. Vos obligations de conformité survivent au contrat, et vous ne pouvez pas respecter des désabonnements que vous n’avez pas pu emporter.

Y a-t-il des limites d’envoi ? Le courriel transactionnel passera-t-il un jour de pointe ?

Il y a des limites, mais ce sont des réglages par compte et non des paliers de forfait : un plafond quotidien et un débit par minute, tous deux relevés sur demande. Un message est refusé si vous dépassez le plafond : à la mise en service, il vaut donc mieux le fixer confortablement au-dessus de votre pointe prévue plutôt qu’à son niveau — dites-nous la journée la plus chargée que vous pouvez imaginer et nous le placerons au-dessus.

Assurance

Posture de sécurité

Quelles mesures de sécurité avez-vous en place ?

  • Chiffrement au repos du volume de la base de données, avec déverrouillage automatique au démarrage et un inventaire documenté de chaque clé capable de l’ouvrir.
  • Sauvegardes chiffrées hors site dont la clé de déchiffrement est conservée hors ligne, vérifiées chaque nuit et testées par restauration selon un calendrier — une sauvegarde que personne n’a restaurée est un espoir, pas une mesure.
  • Chiffrement du transport pouvant être rendu obligatoire par clé, faisant échouer un envoi plutôt que de le dégrader.
  • Clés d’API à portée limitée, révocables et renouvelables, dont le secret n’est affiché qu’une fois et n’est conservé que sous forme de hachage.
  • Actions administratives consignées dans un journal d’audit.
  • Une entente de traitement des données publiée plutôt que produite sur demande.

Une question qui ne figure pas ici ?

Écrivez à hello@zedmail.com. Si la réponse mérite de figurer sur cette page, elle y sera ajoutée — la plupart des questions ci-dessus sont arrivées exactement comme ça.