Limites

Tout ce qui est plafonné, au même endroit. Publié plutôt que découvert — une limite qu'on rencontre par surprise est un bug de la documentation.

En un coup d'œil

  • 1/sec

    Requêtes API, par adresse

    Interroger une fois par seconde est le mode d'usage prévu.

  • 5jours

    Conservation des messages

    Dès l'arrivée, lu ou non. Limite stricte.

  • 5MB

    Taille maximale des messages

    Refusé au moment du SMTP, donc l'expéditeur en est informé.

  • Adresses par domaine

    Rien n'est créé à l'avance, donc rien n'est comptabilisé.

  • 200

    Messages renvoyés par appel

    50 par défaut. Cela limite une réponse, pas la boîte de réception : next permet de parcourir le reste, quel qu'en soit le nombre.

  • 0

    Messages sortants

    Il n’y a pas de point de terminaison d’envoi. C’est voulu.

Limite de débit

Une requête par seconde, par adresse. La limite s'applique par boîte de messagerie, pas par IP ; un exécuteur CI partagé interrogeant vingt boîtes différentes n'entre donc pas en concurrence avec lui-même.

Au-delà de la limite, vous recevez 429 avec un en-tête Retry-After exprimé en secondes entières. Il n'y a ni quota quotidien, ni quota mensuel, ni crédit de rafale à gérer.

Il existe un second plafond, indiqué ici plutôt que laissé à découvrir : 1200 requêtes par minute depuis une même adresse source. C’est exactement l’exemple des vingt boîtes par seconde ci-dessus, si bien que l’automatisation ordinaire ne l’atteint jamais — il existe pour qu’un seul hôte ne puisse pas parcourir dix mille adresses par seconde.

HTTP/1.1 429 Too Many Requests
Retry-After: 1
Content-Type: application/json

{
  "error":   "rate_limited",
  "message": "one request per second, per address"
}

Basez votre réessai sur Retry-After plutôt que sur un délai fixe. Si la limite change un jour, le code qui lit l'en-tête continue de fonctionner.

Taille des messages

Messages jusqu'à 5 MB, pièces jointes comprises. Cette limite est appliquée par le serveur de messagerie pendant la conversation SMTP, ce qui change tout : le serveur expéditeur en est informé au moment même où il essaie et signale un véritable échec à son utilisateur, au lieu de voir le message disparaître.

Ce qui compte
Le message encodé dans son intégralité — en-têtes, corps et toutes les pièces jointes après encodage MIME. Le Base64 gonfle un binaire d’environ un tiers, si bien qu’un fichier de 20 Mo approche de la limite.
Ce qui se passe sur la ligne
Un 552 au moment SMTP. Le message n'est jamais stocké et n'apparaît jamais dans la boîte de messagerie.
Pièces jointes par message
Pas plafonné séparément. Seul le total compte.

Rétention

Un message est supprimé 5 jours après son arrivée, qu'il ait été lu ou non, et le compte à rebours démarre à la livraison plutôt qu'à la première lecture.

Chaque message porte expires_at, si bien qu'un client n'a jamais à calculer cette date ni à suivre la politique de conservation.

C'est une limite stricte, pas un réglage : aucun paramètre, plan ou compte ne la prolonge. Si quelque chose doit survivre à cette fenêtre, récupérez-le et stockez-le de votre côté.

Adresses et domaines

Adresses par domaine
Illimité, et non comptabilisé. Comme une boîte n’est jamais créée, il n’existe aucune liste qui puisse grandir.
Règles de la partie locale
De un à 64 caractères : lettres, chiffres, point, tiret, tiret bas et plus. Elle doit commencer et finir par une lettre ou un chiffre. Tout le reste est rejeté avant d'atteindre le serveur de messagerie, dans le navigateur puis à nouveau sur le serveur.
Adressage plus
name+tag@domain est ici une boîte distincte, pas un alias de name@domain. C'est voulu — les tags servent à séparer les inscriptions, et les fusionner mélangerait des boîtes censées rester séparées.
Casse
Tout est mis en minuscules. Name@ et name@ désignent la même boîte.
Domaines personnalisés
Aucune limite au nombre de domaines que vous pointez ici. Chacun a besoin de son propre enregistrement MX.

Usage raisonnable

Il n’y a pas de quota que l’on puisse acheter pour le dépasser, ni de forfait qui relève ces chiffres. Ce qui existe à la place : si une seule source dégrade le service pour tout le monde, elle est stoppée.

Interrogation en masse
Des milliers de boîtes interrogées chaque seconde depuis une seule source seront limitées en périphérie avant d’atteindre l’API.
Inondations de courrier
Un hôte expéditeur qui ouvre un nombre déraisonnable de connexions SMTP est mis en attente pendant dix minutes. Les expéditeurs normaux n'en approchent jamais.
Nous utiliser comme relais
Impossible plutôt qu'interdit : le serveur de messagerie n'accepte que les messages adressés aux domaines hébergés ici, il ne peut donc rien transférer nulle part.

Rien de tout cela n'est pensé pour une automatisation ordinaire. Interroger le service une fois par seconde, toute la journée, sur des milliers de boîtes : c'est l'usage prévu, pas sa limite.