Table des matières

Résumé technique

Contexte général

L'émission

Les mails sont des fichiers textes relayés de serveur en serveur, comportant (entre autres) un corps, une adresse d’expéditeur, et une adresse de destinataire. Les serveurs chargés de relayer ou transmettre des mails sont des MTA (Mail Transfer Agent). Le protocole que les MTA utilisent pour communiquer entre eux est SMTP. Ce protocole présente cependant des limites, notamment en terme d’authentification de l’entité émettrice (qui a réellement envoyé ce mail?). Les solutions à ce problème sont principalement apportées par l’enregistrement de champs spécifiques dans le DNS :

La réception

Le propriétaire d’un nom de domaine peut, via des champs MX dans le DNS, désigner des serveurs chargés de recevoir les mails dont l’adresse du destinataire appartient à ce nom de domaine. Ces serveurs de bout de chaîne connaissent leur propre domaine et, au lieu de transmettre le mail à un autre serveur, vont l’enregistrer dans une boîte aux lettres (BAL). Il existe des serveurs spécialisés dans l’archivage de mails, ce sont les MDA (Mail Delivery Agent). Ces serveurs permettent à des utilisateurs authentifiés de consulter leur boîte aux lettres via les protocoles IMAP ou POP.

Mise en place chez Picasoft

Les logiciels utilisés et le flux des mails

Chez Picasoft, nous utilisons Postfix et Dovecot, respectivement en tant que MTA et MDA. Les schémas suivant illustrent le parcours d’un mail entrant et sortant de Picasoft :

Réception d'un mail:

 Mail entrant chez Picasoft

Envoi d'un mail

 Mail sortant de Picasoft

L'architecture

Réseau

Le MDA et le MTA sont dans deux conteneurs1) séparés. Ils communiquent entre eux par TCP/IP, via un docker network qui leur est dédié. Ils utilisent le protocole LMTP (SMTP local). C’est une version modifiée de SMTP, optimisée pour la livraison de mail entre serveurs de confiance sur le même réseau, un peu moins polie 2) mais plus efficace.

Ils peuvent exposer certains ports: le 25 pour le SMTP et le 143 pour l’IMAP notamment.

Ils sont aussi clients d'un serveur LDAP, un annuaire qui leur fournit la liste des utilisateurs et permet de les authentifier par mot de passe.

Stockage

Dovecot a besoin de stocker les mails qu’il reçoit; il utilise pour cela une structure de système de fichiers appelée Maildir. Il en existe d’autres. Les fichiers Maildir sont écrits sur un docker volume, ce qui signifie que les boîtes survivent à un kill de conteneur.

2)
En effet, les serveurs SMTP ont tendance à respecter beaucoup d’usages a priori inutiles pour la transmission proprement dite du mail: ils se disent bonjour, ils déclinent leur identité, la version de leur logiciel, etc. Ces protocoles visent à reconnaître et éliminer les crawlers qui scannent bêtement la toile et ne respectent pas ces bonnes manières. En LMTP, on ne s’encombre pas de politesse car les deux serveurs se font plus “confiance”: ils sont censés être sur un réseau local.