Essai de récupération des mails avec IMAP et POP3 - Debian 5.0 Lenny
Rédigé par Marc GUILLAUME | Aucun commentaireTester la réception du courier avec le mail envoyé via Telnet.
John préférera certainement lire sont mail dans un programme de courrier confortable. Il doit donc avoir un moyen d'accéder à sa boîte aux lettres. Deux protocoles entrent alors en jeu :
- POP3 (Post Office Protocol) est un protocole simple qui vous permet de récupérer vos mails depuis une seule boîte à lettres. Il est généralement utilisé pour collecter son courrier, bien que vous puissiez en laisser une copie sur le serveur, mais c'est un bidouillage et vous ne pouvez créer des répertoires multiples sur le serveur pour y classer votre courrier. Il économise l'espace disque sur le serveur, car les mails sont déplacés sur le disque dur de l'ordinateur de l'utilisateur. D'un autre côté vous ne pouvez créer des dossiers de rangement multiples sur le serveur pour classer vos mails. Il n'existe que la boîte inbox. C'est un peu ancien maintenant et pas très sympathique pour l'utilisateur.
- IMAP (Internet Messaging Application Protocol) est avant tout axé sur la conservation de vos courriers sur le serveur, bien que vous puissiez aussi le récolter comme avec
POP3
. La boîte inbox est celle dans laquelle arrivent les courriers entrants, mais les utilisateurs peuvent également créer des dossiers et y ranger leurs mails.IMAP
est très pratique quand vous voulez accéder à vos mails depuis différentes machines sans qu'il vous manque un mail car vous l'auriez relevé depuis une autre machine. L'inconvénient est que les utilisateurs négligeants laissent tous leurs mails sur le serveur jusqu'à saturer le disque dur, (à moins que vous n'utilisiez des quotas).
Test de POP3
Établissons une connexion POP3
pour récupérer le mail de John :
$> telnet localhost pop3
Le serveur réponds :
Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. +OK Dovecot ready.
Identifions-nous comme john :
user john@example.com
Le serveur devrait accepter :
+OK
Envoyons alors le mot de passe :
pass summersun
Le serveur devrait accepter le mot de passe :
+OK Logged in.
Demandons la liste des mails de John :
list
Dovecot vous annonce qu'il y a un mail dans la boite :
+OK 1 messages: 1 474 .
recupérez ce mail qui porte le numéro 1 :
retr 1
Dovecot vous envoit le mail :
+OK 474 octets Return-Path:
Fermez la connexion au serveur POP3
:
quit
Le serveur vous déconnecte :
+OK Logging out. Connection closed by foreign host.
Bien entendu les utilisateurs ne vont pas utiliser TELNET pour lire leurs mails. Ils vont utiliser un client de mail plus confortable. C'était juste pour vous montrer le fonctionnement de base de POP et pour nous assurer que Dovecot se comporte correctement.
Test d'IMAP
Pour mener à bien la procédure ci-dessous (IMAP
est assez compliqué) vous pouvez juste utiliser mutt
pour créer une connexion IMAP
:
$> mutt -f imap://john@example.com@localhost
Vous pouvez aussi ouvrir une simple connexion IMAP
avec le serveur et entrer les commandes IMAP
vous-même :
$> telnet localhost imap2
Vous devriez obtenir une connexion :
Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. * OK Dovecot ready.
Les commandes IMAP
commencent toujours par un chiffre et utilisent ce même numéro pour la réponse. Du coup les commendent doivent être saisies avec le chiffre figurant au début de chaque ligne. Connectons-nous avec le nom d'utilisateur et le mot de passe :
1 login john@example.com summersun
Dovecot nous connecte :
1 OK Logged in.
Demandons à Dovecot une liste des répertoires mail de John :
2 list "" "*"
Il nous renvoit la liste :
* LIST (HasNoChildren) "." "INBOX" 2 OK List completed.
Sélectionons la boîte :
3 select "INBOX"
Dovecot nous envoit toute sorte d'informations concernant ce répertoire :
* FLAGS (Answered Flagged Deleted Seen Draft) * OK [PERMANENTFLAGS (Answered Flagged Deleted Seen Draft *)] Flags permitted. * 1 EXISTS * 0 RECENT * OK [UIDVALIDITY 1180039205] UIDs valid * OK [UIDNEXT 3] Predicted next UID 3 OK [READ-WRITE] Select completed.
Nous voyons qu'il existe un email. Récupérons le :
4 fetch 1 all
IMAP
se contente de fournir les informations de base sur cet email :
* 1 FETCH (FLAGS (Seen) INTERNALDATE ......... 4 OK Fetch completed.
Pour le lire il faut le demander explicitement :
5 fetch 1 body
Le voici :
* 1 FETCH (BODY 474 Return-Path:
Déconnectons-nous du serveur :
6 logout
Dovecot vous déconnecte :
* BYE Logging out 6 OK Logout completed. Connection closed by foreign host.
POP3
et IMAP
semblent donc fonctionner. Vous pouvez maintenant utiliser n'importe quel programme de courrier comme Kmail, Evolution ou Thunderbird/Icedove en y configurant un compte POP3
ou un compte IMAP
. La manière la plus simple de contrôler une connexion cryptée est encore d'utiliser mutt
:
$> mutt -f imaps://john@example.com@localhost
Si vous utiliser un autre programme de courrier notez que le nom d'utilisateur sera l'adresse mail le mot de passe étant 'summersun'. Vous pouvez essayer tous ces types de connexion :
- POP3
- IMAP
- POP3 avec TLS/SSL activé
- IMAP avec TLS/SSL activé
Lors de l'utilisation de TLS/SSL vous aurez probablement une alerte indiquant que le certificat du serveur n'est pas un certificat de confiance. Dovecot crée un certificat auto-signé. Si il ne vous convient pas, créez le votre :
$> openssl req -new -x509 -days 3650 -nodes -out /etc/ssl/certs/dovecot.pem -keyout /etc/ssl/private/dovecot.pem
Le certificat sera créé lorsque vous aurez répondu à quelques questions :
Generating a 1024 bit RSA private key .........++++++ ............................++++++ writing new private key to '/etc/ssl/certs/dovecot.pem' ----- You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Country Name (2 letter code) [AU]:DE State or Province Name (full name) [Some-Stat:Hamburg Locality Name (eg, city) :Hamburg Organization Name (eg, company) [Internet Widgits Pty Lt:workaround email service Organizational Unit Name (eg, section) : Common Name (eg, YOUR name) :mailtest.workaround.org Email Address :postmaster@workaround.org
Bien entendu vous devrez entrer ici vos propres informations. L'élément le plus important étant le règlage du Common Name qui doit contenir le nom de machine pleinement qualifié (FQDN) de votre serveur. Autre chose, ce certificat a une validité de 10 ans (3650 jours) - ajustez la période selon vos souhaits.
N'omettez pas de fixer les bonnes permissions sur la clé privée pour qu'aucun utilisateur non habilité ne puisse la lire :
$> chmod o= /etc/ssl/private/dovecot.pem
Il vous faudra ensuite redémarrer Dovecot pour qu'il prenne en compte votre nouveau certificat :
$> /etc/init.d/dovecot restart
Note du traducteur : pour créer votre propre autorité de certification et générer des certificats qui pourront éventuellement ne pas générer d'alertes lisez l'article créer des certificats SSL.