Académique Documents
Professionnel Documents
Culture Documents
Définition
SMTP signifie Simple Message Transfert Protocole, ce protocole est utilisé pour transférer les
messages électroniques sur les réseaux.
Un serveur SMTP est un service qui écoute sur le port 25, son principal objectif est de router les
mails à partir de l'adresse du destinataire.
Exemple général
Avant de rentrer en détail dans la description de ce protocole, il est important de connaitre les
différentes phases qui se succèdent entre l'envoie d'un mail par l'émetteur et sa réception par le
destinataire.
Le schéma suivant présente la succesion de ces différentes phases :
Dans cet exemple, Fred, qui appartient au domaine truc.fr, veut envoyer un mail à Marc, qui, lui,
appartient au domaine machin.com.
Fred va composer son mail sur son ordinateur puis va exécuter la commande d'envoi de son logiciel
de messagerie. Le logiciel va contacter le serveur smtp du domaine truc.fr (1), c'est ce serveur qui
va se charger d'acheminer (router) le mail vers le destinataire.
Le serveur smtp.truc.fr va lire l'adresse de destination du mail, le domaine du destinataire n'étant
pas truc.fr, le serveur va alors contacter le serveur smtp du domaine machin.com.
Si ce serveur existe, ce qui est le cas ici, smtp.truc.fr va lui transférer le mail (2).
Le serveur smtp.machin.com va vérifier que l'utilisateur Marc existe bien dans sa liste
d'utilisateurs. Il va ensuite placer le mail dans l'espace mémoire accordé aux mails de Marc sur le
serveur (3).
Le mail est ainsi arrivé à destination. L'objectif du protocole SMTP est atteint.
Ensuite c'est le protocole POP qui est utilisé.
Lorsque Marc utilisera son logiciel de messagerie pour vérifier s'il a de nouveaux mails, le logiciel
va solliciter le serveur pop (4) afin que celui-ci vérifie si des mails sont dans l'espace mémoire
accordé à Marc (5).
S'il y a un message, le serveur pop va l'envoyer au logiciel de messagerie de Marc (6)
Détail du fonctionnement
Le service SMTP est divisé en plusieurs parties, chacune assurant une fonction spécifique :
MUA : Mail User Agent, c’est le client de messagerie (Exemples : Outlook, ThunderBird),
MTA : Mail Transfert Agent, c'est l'élément principal d'un serveur SMTP car c'est lui qui
s'occupe d'envoyer les mails entre les serveurs. En effet, avant d'arriver dans la boite mail
du destinataire, le mail va transiter de MTA en MTA. Il est possible de connaitre l'ensemble
des MTA par lesquels le mail est passé, pour cela il suffit d'afficher la source du message,
MDA : Mail Delivery Agent, c'est le service de remise des mails dans les boîtes aux lettres
(les espaces mémoires réservés) des destinataires, il intervient donc en fin de la chaine
d'envoie d'un mail.
Sendmail
La première version a été réalisée en 1983.
C'est à l'heure actuelle le MTA le plus utilisé, il représente environ 55% des serveurs SMTP.
Sa fiabilité n'est plus à remetre en cause.
Sendmail est donc le plus puissant et le plus ancien MTA mais il reste l'un des plus compliqué à
mettre en place et à maintenir.
Postfix
Postfix est considéré par beaucoup comme étant la meilleure alternative à Sendmail.
En effet, ce sérieux challenger est le principal concurrent de Sendmail dans le domaine des MTA
UNIX.
Postfix est d'ailleurs installé par défaut dans les nouvelles distributions grand public telles que
Mandrake.
Exim et Smail
Il existe plusieurs serveurs SMTP moins connus mais tout aussi fiable, Exim et Smail en sont de
bons exemples.
Ces serveurs sont simples (et donc n'offre pas de fonctionnalités avancées, mais peuvent suffir
dans certains cas).
Exim est d'ailleurs le MTA par défaut de la distribution Debian.
Windows
Enfin, sous l'OS Windows, il existe aussi des serveurs SMTP.
Sous WindowsXP et Windows2000, un service SMTP est inclus.
Il existe aussi plusieurs freewares tels que FTGate.
Néanmoins, aucun n'a réellement de succès face aux serveurs UNIX.
Chaque commande envoyée par le client est suivie d'une réponse du serveur.
La réponse est de type :
<code><msg>[<précisions>]
Par exemple, la réponse suivante indique que la commande passée a correctement été reçue et
appliquée par le serveur :
250 Ok
Il faut tout d'abord s'identifier auprès du serveur, on passe donc le nom de sa machine en
paramètre de la commande :
HELO <nom_de_machine>
On entre alors le texte du message normalement, bien sûr aucune mise en forme n'est
disponible.
Plusieurs options sont disponibles, telle que la spécification de la date d'envoie du mail :
Date: <date_voulue>
Le spam
Si le serveur est mal configuré, il peut servir de serveur relais.
Cette technique est très utilisée par les spammeurs qui sont toujours en quête de serveurs mal
sécurisés.
Par ce biais ils peuvent envoyer leurs messages de spam tout en étant difficilement repérables.
Les sociétés qui développent les serveurs SMTP distribuent désormais leurs serveurs avec l'option
de relayage désactivée.
De plus il existe des modules à rajouter à un serveur et qui permettent de stopper la diffusion de
spam par le serveur (Exemple : spamassassin).
POP :: Présentation
Définition
POP signifie Post Office Protocol. Actuellement c'est la version 3 qui est utilisée.
Le service POP écoute sur le port 110 d'un serveur.
Objectif
Le protocole POP a un objectif précis : permettre à l'utilisateur de relever son courrier depuis un
hôte qui ne contient pas sa boîte aux lettres.
En d'autres termes, POP établie un dialogue entre le logiciel de messagerie (MUA) et la boîte aux
lettres de l'utilisateur sur le serveur.
Fonctionnalités
POP est avant tout un protocole très simple, de ce fait il ne propose que des fonctionnalités
basiques:
Chaque commande envoyée par le client est suivie d'une réponse du serveur.
Par exemple, la réponse suivante indique que la commande passée a correctement été reçue et
appliquée :
+OK
Le format de réponse suivant indique une erreur au niveau du serveur :
-ERR <raison>
Pour connaitre le nombre de message présents sur le serveur ainsi que la taille totale des
messages :
STAT
Pour lister les messages sur le serveur, avec, pour chacun, le numéro d'ordre dans la file
de messages et la taille en octets :
LIST
Pour récupérer les x premières lignes d'un message (l'en-tête et le début du message) :
TOP <id_msg> <nbr_de_lignes>
Exemple d'utilisation
Il est possible d'exécuter un telnet sur un serveur POP (port 110), et de passer les commandes soi-
même.
Voici un exemple de ce qu'il est possible de faire :
On remarque qu'il y a trois serveurs POP3 sollicités et que chacun répond différement aux
commandes passées.
En effet il est possible de configurer le serveur POP au niveau des messages de réponse aux
clients.
D'après le listing ci-dessus, on visualise clairement les commandes passées par Outlook lors de la
récupération des messages sur notre poste.
Mot de passe...
POP3 présente tout de même quelque points faibles notamment le fait que le mot de passe circule
en clair sur le réseau lors de l'établissement de la connexion avec le serveur.
Ainsi, une personne malhonnête équipée d'un sniffer peut le récupérer et l'utiliser à mauvais
escient.
IMAP :: Présentation
Définition
IMAP signifie Internet Message Access Protocol, la version actuellement utilisée est la 4.
Le service IMAP écoute sur le port 143 d'un serveur.
Une des principales nouveautés est la possibilité de pouvoir lire uniquement les objets des
messages (sans le corps).
Ainsi on peut par exemple effacer des messages sans les avoir lus.
Sous-exploité
IMAP n'est pas aussi répandu que POP, peut-etre parceque certains logiciels de messagerie (MUA)
ne l’exploitent pas correctement.
Outllok fait parti des ces MUA qui n'utilisent pas 100% des fonctionnalités implémentées dans
IMAP. Ainsi, si on limite l'utilisation d'IMAP aux fonctionnalités de POP, autant utiliser ce dernier.
De plus, les serveurs IMAP sont pus complexes à installer et à maintenir que les serveurs POP. Les
Fournisseurs d'Accès à Internet ne proposent donc le plus souvent que les protocole POP à leurs
adhérents.
UW-IMAP
UW-IMAPD est développé par l'université de Washington aux USA.
Il utilise le format "mailbox" pour stocker les messages. C'est un format classique que les MDA
savent généralement bien gérer.
En fait, les messages sont enregistrés dans un fichier unique, pour un utilisateur donné.
Le plus souvent, chaque utilisateur devra disposer d'un compte sur le serveur, même si ce compte
ne lui permet pas d'ouvrir une session shell.
Les dossiers IMAP que le client peut créer se situent au même niveau que INBOX et chaque dossier
créé correspond sur le serveur à un fichier.
Ce genre de serveur est extrêmement facile à installer.
Cyrus
Cyrus est développé par l'université de Carnegie Mellon aux USA.
Il s'appuie sur le format "maildir" pour stocker les messages.
Les messages sont stockés chacun dans un fichier séparé, rangés dans un répertoire par
utilisateur.
Les utilisateurs peuvent être enregistrés dans une base de données, un annuaire LDAP et n'ont
absolument pas besoin de disposer d'un compte UNIX sur la machine serveur.
Ce serveur est plus souple, plus sûr, offre plus de possibilités et, bien entendu, est beaucoup plus
difficile à installer et à configurer.
autres serveurs
D'autres serveurs existent, comme courier-imap. Il est plus proche de Cyrus que de UW-imap et
utilise lui aussi le format "Maildir".
Le client peut envoyer plusieurs commandes sans obligatoirement attendre à chaque fois la
réponse. Un tag précédant chacune des commandes doit être ajouté afin de permettre au serveur
de retrouver facilement la réponse à une commande donnée.
De plus chaque commande envoyée par le client est suivie d'une réponse par le serveur de la
forme suivante en cas de réussite :
Les principales commandes présentées ici sont dans l'ordre chronologique d'utilisation.
Il faut ensuite choisir la boite aux lettres que l'on souhaite utiliser :
Select inbox
La commande Fetch est très puissante elle permet de faire de nombreuses et diverses
sélections auprès de la liste des messages et des messages eux-mêmes :
Fetch <id(s)_msg(s)> <action>
Exemple d'utilisation
Il est possible d'exécuter un telnet sur un serveur IMAP (port 143), et de passer les commandes soi-
même.
Voici un exemple de ce qu'il est possible de faire :
La commande avec le tag a1 sert à s'authentifier auprès du serveur.
Ensuite on choisit de travailler dans le dossier INBOX avec la commande précédée du tag a2.
Puis on choisit d'afficher la taille de chacun des messages avec la commande précédée du tag a3.
Enfin, on décide de connaitre le corps du message 1 avec la commande a4.
POP ou IMAP ?
Un choix personnel
Le choix dépend essentiellement de la manière dont on travaille, à savoir si l'on doit accéder à ses
messages depuis plusieurs postes de travail dans l'Ecole ou ailleurs, ou encore si on ne lit ses
messages que depuis son seul poste de travail et donc aucune raison de vouloir faire de la gestion
de messages sur le serveur.
Dans le premier cas, on choisira le protocole IMAP et dans le second, le protocole POP3.
Il n'y a évidemment pas de protocole idéal pour tous.
Récapitulatif POP3
Le protocole POP est à conseiller si l'on est dans une (ou plusieurs) des situations suivantes :
Récapitulatif IMAP4
Le protocole IMAP est particulièrement utile à toutes les personnes qui se déplacent souvent et
qui désirent consulter leur messagerie depuis n'importe quel ordinateur connecté à Internet :
professeurs et assistants en déplacement,
secrétaires dans leurs multiples affectations,
étudiants entre une salle de machines et une autre,
collaborateurs à leur poste de travail ou à la maison.
Ce protocole peut aussi être très utile si l'on a une ligne bas débit et peu fiable.
De même si l'on souhaite disposer d'une sauvegarde de ses mails sur le serveur de son FAI, ce
protocole est à prescrire car, bien qu'il faille dans ce cas un espace de stockage important, la
plupart des FAI fournissent désormais des boites mails d'une capacité de 100Mo, ce qui est
suffisant.