Récupérer les méls sur un serveur pop

Dans un premier temps, il faut pouvoir récupérer ses méls sur un serveur distant. Pour cela, on utilise le programme fetchmail. Pour préciser les paramètres à utiliser, il faut écrire un fichier /.fetchmailrc. Voici le fichier /.fetchmailrc :


verbatim5

A chaque appel de fetchmail, ce fichier sera lu. Les méls seront récupérés sur le serveur pop.fai.fr, qui est le serveur POP du fournisseur d'accès. Le login sur ce serveur POP est loginlabas, ayant pour mot de passe ``xxxxxxxx''. Les méls récupérés par fetchmail seront déposés dans la boîte aux lettres de l'utilisateur loginici. Il faut penser à rendre le fichier /.fetchmailrc en lecture seule pour l'utilisateur, pour que le mot de passe ne puisse être lu par d'autre utilisateurs. On peut mettre autant de serveurs que l'on veut en rajoutant une ligne pool par serveur.

Pour vérifier que la syntaxe de notre fichier .fetchmailrc est bonne, taper simplement :

$ fetchmail --version
This is fetchmail release 5.3.3+NTLM+SDPS+NLS
Linux tarsier 2.2.17 #1 Sun Jun 25 09:24:41 EST 2000 i686 unknown
Taking options from command line and /home/mdecore/.fetchmailrc
Idfile is /home/mdecore/.fetchids
Fetchmail will forward misaddressed multidrop messages to mdecore.
Options for retrieving from mdecor@poste.ens.uvsq.fr:
  True name of server is poste.ens.uvsq.fr.
  Protocol is POP3.
  Server nonresponse timeout is 300 seconds (default).
  Default mailbox selected.
  Only new messages will be retrieved (--all off).
  Fetched messages will be kept on the server (--keep on).
  Old messages will not be flushed before message retrieval (--flush off).
  Rewrite of server-local addresses is enabled (--norewrite off).
  Carriage-return stripping is disabled (stripcr off).
  Carriage-return forcing is disabled (forcecr off).
  Interpretation of Content-Transfer-Encoding is enabled (pass8bits off).
  MIME decoding is disabled (mimedecode off).
  Idle after poll is disabled (idle off).
  Nonempty Status lines will be kept (dropstatus off)
  Messages will be SMTP-forwarded to: localhost (default)
  Recognized listener spam block responses are: 571 550 501 554
  Single-drop mode: 1 local name(s) recognized.
  No UIDs saved from this host.
$

A noter que le programme fetchmailconf permet d'écrire ce fichier de manière simple et agréable (avec interface graphique).

Deux options intéressantes peuvent rajoutées dans ce fichier : keep, qui précise que les méls récupérés doivent également rester sur le serveur POP, et fetchall, qui demande de récupérer tous les méls, y compris ceux déjà lus.

Pour commencer, on peut tester fetchmail avec l'option -k, qui précise que les méls récupérés doivent également rester sur le serveur POP. Cette option peut aussi être définie dans le fichier de configuration /.fetchmailrc.

$ fetchmail -kv
fetchmail: 5.5.0 querying pop.free.fr (protocol POP3) at Fri, 12 Jan 2001
09:22:32 +0100 (CET)
fetchmail: POP3< +OK <15932.979287752@pop1-1.free.fr>
fetchmail: POP3> USER mdecore
fetchmail: POP3< +OK 
fetchmail: POP3> PASS *
fetchmail: POP3< +OK 
fetchmail: POP3> STAT
fetchmail: POP3< +OK 9 192549
fetchmail: POP3> LAST
fetchmail: POP3< +OK 0
9 messages for mdecore at pop.free.fr (192549 octets).
fetchmail: POP3> LIST
fetchmail: POP3< +OK 
fetchmail: POP3< 1 58082
fetchmail: POP3< 2 3075
fetchmail: POP3< 3 4573
fetchmail: POP3< 4 2878
fetchmail: POP3< 5 58079
fetchmail: POP3< 6 3075
fetchmail: POP3< 7 2291
fetchmail: POP3< 8 2416
fetchmail: POP3< 9 58080
fetchmail: POP3< .
fetchmail: POP3> RETR 1
fetchmail: POP3< +OK 58082 octets
reading message 1 of 9 (58082 octets)
fetchmail: SMTP< 220 virtual.dnsalias.org ESMTP Sendmail 8.11.0/8.11.0; Fri, 
12 Jan 2001 09:22:35 +0100
fetchmail: SMTP> EHLO localhost
fetchmail: SMTP< 250-virtual.dnsalias.org Hello virtual.penguinpowered.com
[127.0.0.1], pleased to meet you
fetchmail: SMTP< 250-ENHANCEDSTATUSCODES
fetchmail: SMTP< 250-EXPN
fetchmail: SMTP< 250-VERB
fetchmail: SMTP< 250-8BITMIME
fetchmail: SMTP< 250-SIZE 5000000
fetchmail: SMTP< 250-DSN
fetchmail: SMTP< 250-ONEX
fetchmail: SMTP< 250-ETRN
fetchmail: SMTP< 250-XUSR
fetchmail: SMTP< 250 HELP
fetchmail: SMTP> MAIL FROM:<mdecor@ens.uvsq.fr> BODY=8BITMIME SIZE=58082
fetchmail: SMTP< 250 2.1.0 <mdecor@ens.uvsq.fr>... Sender ok
fetchmail: SMTP> RCPT TO:<mathieu@localhost>
fetchmail: SMTP< 250 2.1.5 <mathieu@localhost>... Recipient ok
fetchmail: SMTP> DATA
fetchmail: SMTP< 354 Enter mail, end with "." on a line by itself
fetchmail: SMTP>. (EOM)
fetchmail: SMTP< 250 2.0.0 f0C8MZ401565 Message accepted for delivery
 not flushed
fetchmail: POP3> RETR 2
fetchmail: POP3< +OK 3075 octets
reading message 2 of 9 (3075 octets)
fetchmail: SMTP> MAIL FROM:<mdecor@ens.uvsq.fr> BODY=8BITMIME SIZE=3075
fetchmail: SMTP< 250 2.1.0 <mdecor@ens.uvsq.fr>... Sender ok
fetchmail: SMTP> RCPT TO:<mathieu@localhost>
fetchmail: SMTP< 250 2.1.5 <mathieu@localhost>... Recipient ok
fetchmail: SMTP> DATA
fetchmail: SMTP< 354 Enter mail, end with "." on a line by itself
fetchmail: SMTP>. (EOM)
fetchmail: SMTP< 250 2.0.0 f0C8Ma401567 Message accepted for delivery
 not flushed
fetchmail: POP3> RETR 3
fetchmail: POP3< +OK 4573 octets
reading message 3 of 9 (4573 octets)
fetchmail: SMTP> MAIL FROM:<mdecor@ens.uvsq.fr> SIZE=4573
fetchmail: SMTP< 250 2.1.0 <mdecor@ens.uvsq.fr>... Sender ok
fetchmail: SMTP> RCPT TO:<mathieu@localhost>
fetchmail: SMTP< 250 2.1.5 <mathieu@localhost>... Recipient ok
fetchmail: SMTP> DATA
fetchmail: SMTP< 354 Enter mail, end with "." on a line by itself
fetchmail: SMTP>. (EOM)
fetchmail: SMTP< 250 2.0.0 f0C8Mb401569 Message accepted for delivery
 not flushed
fetchmail: POP3> RETR 4
fetchmail: POP3< +OK 2878 octets
reading message 4 of 9 (2878 octets)
fetchmail: SMTP> MAIL FROM:<mdecor@ens.uvsq.fr> SIZE=2878
fetchmail: SMTP< 250 2.1.0 <mdecor@ens.uvsq.fr>... Sender ok
fetchmail: SMTP> RCPT TO:<mathieu@localhost>
fetchmail: SMTP< 250 2.1.5 <mathieu@localhost>... Recipient ok
fetchmail: SMTP> DATA
fetchmail: SMTP< 354 Enter mail, end with "." on a line by itself
fetchmail: SMTP>. (EOM)
fetchmail: SMTP< 250 2.0.0 f0C8Mb401571 Message accepted for delivery
 not flushed
fetchmail: POP3> RETR 5
fetchmail: POP3< +OK 58079 octets
reading message 5 of 9 (58079 octets)
fetchmail: SMTP> MAIL FROM:<mdecor@ens.uvsq.fr> BODY=8BITMIME SIZE=58079
fetchmail: SMTP< 250 2.1.0 <mdecor@ens.uvsq.fr>... Sender ok
fetchmail: SMTP> RCPT TO:<mathieu@localhost>
fetchmail: SMTP< 250 2.1.5 <mathieu@localhost>... Recipient ok
fetchmail: SMTP> DATA
fetchmail: SMTP< 354 Enter mail, end with "." on a line by itself
fetchmail: SMTP>. (EOM)
fetchmail: SMTP< 250 2.0.0 f0C8Mb401573 Message accepted for delivery
 not flushed
fetchmail: POP3> RETR 6
fetchmail: POP3< +OK 3075 octets
reading message 6 of 9 (3075 octets)
fetchmail: SMTP> MAIL FROM:<mdecor@ens.uvsq.fr> BODY=8BITMIME SIZE=3075
fetchmail: SMTP< 250 2.1.0 <mdecor@ens.uvsq.fr>... Sender ok
fetchmail: SMTP> RCPT TO:<mathieu@localhost>
fetchmail: SMTP< 250 2.1.5 <mathieu@localhost>... Recipient ok
fetchmail: SMTP> DATA
fetchmail: SMTP< 354 Enter mail, end with "." on a line by itself
fetchmail: SMTP>. (EOM)
fetchmail: SMTP< 250 2.0.0 f0C8Mc401575 Message accepted for delivery
 not flushed
fetchmail: POP3> RETR 7
fetchmail: POP3< +OK 2291 octets
reading message 7 of 9 (2291 octets)
fetchmail: SMTP> MAIL FROM:<mdecor@ens.uvsq.fr> SIZE=2291
fetchmail: SMTP< 250 2.1.0 <mdecor@ens.uvsq.fr>... Sender ok
fetchmail: SMTP> RCPT TO:<mathieu@localhost>
fetchmail: SMTP< 250 2.1.5 <mathieu@localhost>... Recipient ok
fetchmail: SMTP> DATA
fetchmail: SMTP< 354 Enter mail, end with "." on a line by itself
fetchmail: SMTP>. (EOM)
fetchmail: SMTP< 250 2.0.0 f0C8Md401577 Message accepted for delivery
 not flushed
fetchmail: POP3> RETR 8
fetchmail: POP3< +OK 2416 octets
reading message 8 of 9 (2416 octets)
fetchmail: SMTP> MAIL FROM:<mdecor@ens.uvsq.fr> BODY=8BITMIME SIZE=2416
fetchmail: SMTP< 250 2.1.0 <mdecor@ens.uvsq.fr>... Sender ok
fetchmail: SMTP> RCPT TO:<mathieu@localhost>
fetchmail: SMTP< 250 2.1.5 <mathieu@localhost>... Recipient ok
fetchmail: SMTP> DATA
fetchmail: SMTP< 354 Enter mail, end with "." on a line by itself
fetchmail: SMTP>. (EOM)
fetchmail: SMTP< 250 2.0.0 f0C8Md401579 Message accepted for delivery
 not flushed
fetchmail: POP3> RETR 9
fetchmail: POP3< +OK 58080 octets
reading message 9 of 9 (58080 octets)
fetchmail: SMTP> MAIL FROM:<mdecor@ens.uvsq.fr> BODY=8BITMIME SIZE=58080
fetchmail: SMTP< 250 2.1.0 <mdecor@ens.uvsq.fr>... Sender ok
fetchmail: SMTP> RCPT TO:<mathieu@localhost>
fetchmail: SMTP< 250 2.1.5 <mathieu@localhost>... Recipient ok
fetchmail: SMTP> DATA
fetchmail: SMTP< 354 Enter mail, end with "." on a line by itself
fetchmail: SMTP>. (EOM)
fetchmail: SMTP< 250 2.0.0 f0C8Md401581 Message accepted for delivery
 not flushed
fetchmail: POP3> QUIT
fetchmail: POP3< +OK 
fetchmail: SMTP> QUIT
fetchmail: SMTP< 221 2.0.0 virtual.dnsalias.org closing connection
fetchmail: normal termination, status 0
$

On peut aussi lancer fetchmail en mode démon pour récuperer à intervalles réguliers le courrier :

$ fetchmail -d 120 -t 20
$

pour récupérer les méls toute les 120 secondes, en abandonnant si aucune réponse n'est donnée au bout de 20 secondes. Au démarrage de la machine, on peut également mettre :

su jbon -c fetchmail -d 120 -t 20

pour lancer la récpération pour l'utilisateur jbon.