Email

Qu'est-ce que SMTP, et en quoi diffère-t-il de IMAP ?

SMTP est le protocole qui envoie et relaie le courrier ; IMAP récupère et synchronise les messages d'une boîte aux lettres.

Un flux de messagerie comporte une étape d'envoi et une étape de boîte aux lettres. SMTP gère la première ; IMAP gère la seconde.

Que fait SMTP ?

SMTP envoie et relaie le courrier. Votre application ou client de messagerie ouvre une connexion vers un serveur SMTP, soumet l'expéditeur, les destinataires et le message, et reçoit une réponse après chaque commande. Un relais peut ensuite agir comme client SMTP et transmettre le message au serveur suivant.

Le protocole ne décide pas comment une boîte aux lettres est affichée ni quels messages un utilisateur a lus. Son rôle est la transmission et le transfert de responsabilité entre serveurs.

Que fait IMAP ?

IMAP récupère les messages d'une boîte aux lettres et synchronise son état. Un téléphone et un ordinateur portable peuvent afficher les mêmes dossiers, drapeaux et états de lecture parce que tous deux travaillent sur la copie du serveur.

IMAP ne soumet pas de nouveau message pour livraison. Un client peut utiliser SMTP pour envoyer une réponse, puis utiliser IMAP pour lire le fil de discussion dans la boîte aux lettres.

Comment SMTP et IMAP se comparent-ils ?

QuestionSMTPIMAP
Fonction principaleEnvoyer et relayer le courrierRécupérer et synchroniser les données de la boîte aux lettres
DirectionSortant vers un serveur de messagerie ou un relaisEntre un serveur de boîte aux lettres et un client
État côté serveurUn serveur peut mettre un message en file d'attente jusqu'au prochain transfert ; SMTP ne définit pas la boîte aux lettres d'un utilisateurLe serveur conserve la copie de la boîte aux lettres, les dossiers et l'état des messages
Client typeApplication d'envoi ou client de messagerieClient de messagerie lisant une boîte de réception
Ports courants587 pour la soumission, 465 pour le TLS implicite, 25 pour le relais serveur à serveur143 en clair ou STARTTLS, 993 pour le TLS implicite
Utilisation dans une applicationEnvoyer des reçus, des alertes et d'autres messagesLire ou traiter une boîte aux lettres existante

La différence d'état côté serveur détermine le choix du protocole. SMTP peut mettre un message en file d'attente pendant la livraison, mais ce n'est pas un stockage de boîte aux lettres. IMAP est conçu autour d'une boîte aux lettres côté serveur que les clients consultent et synchronisent.

Comment une conversation SMTP peut-elle diagnostiquer un échec ?

Capturez la commande et la réponse qui la suit. SMTP est une conversation pas à pas : le client envoie EHLO, MAIL FROM, RCPT TO et DATA, et le serveur répond à chaque étape. La commande en échec permet de circonscrire le problème à l'établissement de la connexion, l'acceptation de l'expéditeur, l'acceptation du destinataire ou les données du message.

Par exemple, cet échange court atteint le corps du message :

S: 220 mail.example ESMTP ready
C: EHLO app.example
S: 250-mail.example
C: MAIL FROM:<sender@example>
S: 250 2.1.0 OK
C: RCPT TO:<recipient@example>
S: 550 5.1.1 user unknown

Le 550 est arrivé après RCPT TO, donc le serveur a rejeté l'adresse du destinataire. Cela ne prouve pas que la connexion réseau ou l'identité de l'expéditeur a échoué. Un 4xx à la même étape appellerait une politique de réessai plutôt qu'un échec permanent immédiat.

La RFC 5321 définit le format de réponse et fait du code numérique la partie lisible par la machine :

An SMTP reply consists of a three digit number (transmitted as three numeric characters) followed by some text unless specified otherwise in this document. The number is for use by automata to determine what state to enter next; the text is for the human user.

Utilisez le premier chiffre comme premier critère de diagnostic :

Classe de codeSignificationÉtape suivante
2xxLa commande a aboutiPoursuivre la transaction
3xxLe serveur a accepté la commande et attend d'autres donnéesEnvoyer la partie suivante, par exemple le corps du message après DATA
4xxÉchec temporaireConserver la responsabilité du message et réessayer une fois que la condition du serveur a pu se résoudre
5xxÉchec permanent pour cette requêteCorriger l'adresse, les identifiants ou le message avant de réessayer

Lisez la commande et le code ensemble. Un 535 après l'authentification pointe vers les identifiants ou la politique d'authentification. Un 552 après DATA pointe vers une limite de taille. Un 421 pendant la phase de connexion pointe vers une limite temporaire du serveur ou de connexions.

De quel protocole mon application a-t-elle besoin ?

Utilisez SMTP quand l'application envoie du courrier. Utilisez IMAP quand elle lit et synchronise une boîte aux lettres existante. Une application qui doit traiter le courrier entrant peut aussi utiliser un API d'e-mail entrant, qui livre les messages analysés sans nécessiter d'interrogation de la boîte aux lettres.

Pour le courrier sortant, choisissez entre un relais SMTP et un HTTP e-mail API. SMTP convient aux bibliothèques et systèmes qui parlent déjà le protocole. Un HTTP API convient aux environnements où ouvrir et gérer des connexions SMTP est peu pratique.

Comment Bird aide-t-il à envoyer via SMTP ?

Pour envoyer via Bird, définissez l'hôte de relais correspondant à la région de votre clé, choisissez le port 465, 587 ou 2525, et authentifiez-vous avec le nom d'utilisateur bird et votre clé API. Le guide de relais SMTP indique les limites de connexion et le traitement des codes de réponse en cas d'échec de transfert.

Puis-je utiliser IMAP pour envoyer des e-mails ?

Non. IMAP récupère et synchronise les données de la boîte aux lettres. L'envoi nécessite SMTP ou un HTTP e-mail API.

Quelle est la différence entre IMAP et POP3 ?

Les deux récupèrent le courrier, mais IMAP conserve la boîte aux lettres sur le serveur et synchronise l'état entre les clients. POP3 télécharge traditionnellement les messages vers un seul client, et ne fournit donc pas le même état partagé de la boîte aux lettres.

Quel port SMTP dois-je utiliser ?

Utilisez 587 pour la soumission authentifiée avec STARTTLS, ou 465 pour une connexion chiffrée implicitement lorsque votre client l'exige. Le port 25 est réservé au relais serveur à serveur et est souvent bloqué pour l'usage direct par un client. Quel port SMTP dois-je utiliser ? compare les ports et leurs rôles.

En bref

  1. SMTP envoie et relaie le courrier.

    Il achemine un message depuis un client ou une application vers le serveur de messagerie suivant, puis de relais en relais jusqu'au destinataire.

  2. IMAP récupère et synchronise une boîte aux lettres.

    Il permet aux clients de lire les messages et de maintenir les dossiers, drapeaux et états de lecture alignés avec le serveur.

  3. Les codes de réponse indiquent quoi faire ensuite.

    Un code 2xx indique que la commande a abouti, un code 4xx est temporaire, et un code 5xx nécessite une correction avant de réessayer.

  4. Le guide de relais SMTP de Bird couvre la configuration d'envoi.

    Consultez-le pour l'hôte, les ports, le flux d'authentification et les détails de dépannage propres à SMTP.

Développez sur le même réseau.

Une clé API de test est disponible immédiatement. La production est activée dès que vous ajoutez un moyen de paiement et vérifiez un expéditeur.

Votre prochaine idée.
Prête à se connecter.