Comment fonctionnent les mails (SMTP, POP3, IMAP)

Voici un article qui explique comment fonctionnent les serveurs de mails.
Comment les courriels et emails sont acheminés et transitent de l'expéditeur au destinataire.
En effet, il faut des serveurs, protocoles pour la transmission de mails.

Vous trouverez toutes les explications sur les serveurs et protocoles de mails SMTP, POP3, IMAP et les mécanismes de transfert de mails.

Comment fonctionnent les mails (SMTP, POP3, IMAP)

Comment fonctionnent les mails (SMTP, POP3, IMAP)

Comment se compose une adresse email

Lorsque vous envoyez un mail, vous envoyez à une adresse précise.
Celle-ci se décompose de deux manières, l'arobace @ faisant office de séparateur.

  • avant le @, on trouve le nom, prénom, pseudo ou autre
  • après le @, on trouve le domaine.

Par exemple dans l'adresse [email protected]
Le domaine est orange.fr, on sait alors que le mail doit être acheminé vers les serveurs du fournisseur d'accès internet Orange.

En général, vous utilisez soit le domaine du fournisseur d'accès, soit un fournisseur de mail comme Gmail, hotmail, protonmail.

L'entrée MX du domaine

Lorsque vous envoyez un mail vers un domaine quelconque, une résolution DNS est faite.
Le but est de connaître le serveur mail du domaine afin de contacter ce dernier.
Ce sont les entrées MX (Mail eXchanger) qui indiquent le ou les serveurs de mails liés à un domaine.
Par exemple, la commande nslookup ou dig permet de connaitre le mx d'un domaine via la commande :

dig -t mx domaine.tld
L'interrogation DNS pour obtenir le mx du domaine soit les serveurs de mails

L'interrogation DNS se fait de la manière suivante :

domaine.TLD.    MX    priorité    adresse_serveur_mail.
adresse_serveur_mail          A     adresse_ip

Exemple :

malekal.com. MX         10            smtp.malekal.com
smtp.malekal.com       A              94.12.22.145

On obtient alors très facilement l'adresse du serveur SMTP (Simple Mail Transfer Protocol) avec son adresse IP.
C'est ce dernier qui a pour la charge de transmettre les emails entre les serveurs de mails.

L'interrogation DNS pour obtenir le mx du domaine soit les serveurs de mails

La priorité permet de configurer plusieurs serveurs MX avec une priorité sur l'envoi, si le premier ne répond pas, le serveur de mail tentera d'envoyer sur le second.
L'Alias est important puis qu'il faut que l'adresse littéral renvoie une adresse IP afin de savoir où l'on doit se connecter.

Le transfert de mail avec SMTP

Le serveur SMTP se charge de relayer les mails.
Lorsque vous envoyez un mail, votre serveur SMTP est configuré dans votre client mail.
Si vous utilisez un Webmail comme gmail ou hotmail, cela est transparent.

Vous envoyez le mail à ce serveur SMTP qui s'occupe de regarde l'adresse de l'expéditeur.
Il effectue une interrogation DNS afin de récupérer le serveur MX pour ensuite transférer le mail à ce dernier.

  • MDA étant Mail Delivery Agent (la partie du serveur qui se charge de délivrer les mails).
  • MTA étant Mail Transfert Agent (Mail Transfert Agent).

Voici un exemple de stockage de mail par le MDA, le système de structure des répertoires est de type MailDir :

L'en-tête d'un mail lors de la transmission SMTP

Nous avons un aperçu de l'en-tête (header) du mail. Lorsqu'un serveur SMTP reçoit et transmet un email, il modifie le header.
Il ajoute notamment une mention avec son adresse littéral et IP pour indiquer que le mail a transité par lui.
Pour plus d'informations, se reporter à la page : Mail : source expéditeur - envelope headers & message header

La communication entre le client et les serveurs SMTP se font à travers le protocole de transport TCP.

Enfin SMTP est le protocole d'application.

La relève de mail avec POP3 ou IMAP

Les mails peuvent être relevés par un client de mail.
Les deux protocoles utilisés pour récupérer les mails sont les suivants :

  • POP3 (Post Office Protocol) : La gestion se fait sur le client mail qui rapatrie les mails sur le serveur.
  • IMAP (Internet Message Access Protocol) : La lecture des mails se fait directement sur le serveur.

Sur le client mail, on doit renseigner les informations de connexion, c'est à dire le serveur POP (ou IMAP) où sont stockés les mails du fournisseur.
Ainsi que le serveur SMTP qui sera utilisé pour envoyer les mails.
En règle général, ce sont les serveurs du fournisseur de mail, soit en général le fournisseur d'accès.

La configuration du client mail avec l'adresse email et les serveurs POP3 ou IMAP

Bien entendu, la connexion et relève de mail est protégé par un couple utilisateur et mot de passe.
Cela permet de s'assurer que seul le propriétaire du compte mail ne peut les lire.

La transmission de mail sur internet - le résumé

Voici en résumé le processus de transmission de mails sur internet.

  1. L'expéditeur possède une adresse email en @hotmail.com et envoie un mail vers une adresse @orange.fr
  2. Le webmail hotmail possède un serveur SMTP configuré
  3. Ce dernier reçoit le mail à transmettre. Il effectue une résolution DNS pour obtenir le MX du domaine @orange.fr
  4. Une fois obtenu, il transmet le mail à ce serveur SMTP
  5. Ce dernier le reçoit et s'il l'accepte, il le redirige vers le serveur POP3 et IMAP
  6. Le destinataire du mail a son serveur POP3 ou IMAP configuré dans son client mail ou accessible depuis le webmail orange. Il n'a plus qu'à relever ses mails et trouver un nouveau mail provenant de @hotmail.com

Dans le client mail, vous devez donc configurer les adresses des serveurs mails du fournisseur de mails.
Certains clients de messageries sont capables de le configurer automatiquement à travers l'adresse emails.
Sinon vous trouverez une liste dans ce guide :

Enfin voici un glossaire pour bien mémoriser les termes :

  • SMTP (Simple Mail Transfer Protocol) : c'est le protocole de transfert de mail. Un client mail a un serveur SMTP configuré afin d'envoyer le mail au destinataire
  • POP3 (Post Office Protocol) : le serveur et protocole de relève de mails
  • MX (Mail eXchanger) : c'est l'entrée DNS du domaine où envoyer les mails pour ce domaine.

Pourriel, Spam et SpamBot

Au final, qu'est ce qu'un malware qui se nomme Spambot ?
C'est un malware qui embarque du code permettant de se connecter à un serveur SMTP pour délivrer des mails.
Des templates (modèle de mail) et une liste de destinataire sont récupérés par le cheval de troie qui va ensuite pouvoir envoyer des mails.
Cela peut-être des mails de Spam et pourriels, phishing ou encore des mails malveillants.

Ci-dessous, on peux voir le processus qui se connecte à différent serveur SMTP :

SpamBot et la transmission de pourriels et spams

Ainsi les spambots sont des trojan qui embarquent du code pour transmettre les mails.
Pour atténuer ces derniers, des mécanismes comme SPF ou DKIM ont été créés afin de rejeter les mails de sources non légitimes comme un PC provenant d'un botnet.

Pour rappel, vous avez ce sujet : Spambot : identifier une machine qui spam sur un réseau/LAN