fetchmail : télécharger des messages électroniques depuis le fournisseur d'accès

Base de données support (fetchmail)

Question :

Comment peut on télécharger les courriers électroniques depuis un serveur de courrier avec le protocole POP3 et les distribuer sur le serveur de courrier local ?

Solution :

Ceci peut être réalisé à l'aide de l'application fetchmail.
(Pour les versions antérieures à la version 6.3 de SuSE Linux: paquetage pop, série n ; depuis la version 6.3 de SuSE Linux : paquetage fetchml, série n ; depuis la version 7.1 de SuSE Linux : paquetage fetchmail)

L'avantage que présente fetchmail par rapport à l'application plus ancienne popclient est que le mot de passe n'apparaît pas dans le tableau des processus mais est uniquement échangé entre le serveur de courrier et le client POP3 ; le mot de passe est sauvegardé dans un fichier à part.

Installation :

... bien entendu, il existe de nombreuses possibilités, celle décrite ici n'est qu'un exemple :

Dans notre exemple, nous appelons le serveur de courrier mail.provider.de et définissons deux utilisateurs asterix et obelix, qui ont les noms d'utilisateur eva et maria respectivement sur l'ordinateur local ; leurs mots de passe respectifs (pour le serveur de courrier) sont adam et joseph.

Mode multidrop :

Certains fournisseurs d'accès sauvegardent le courrier électronique pour les différents utilisateurs dans un compte POP3. En utilisant cette solution, il est bien entendu possible de télécharger les courriers électroniques mais ils sont délivrés à un utilisateur local.

IL faut aussi vérifier si le fournisseur d'accès conserve l'adresse destinataire ou s'il la réécrit (généralement dans le compte de courrier électronique).

L'adresse destinataire demeure inchangée :

Dans ce cas, fetchmail peut délivrer les courriers électroniques directement à l'agent de transfert de messages MTA (sendmail, postfix). Vous devez uniquement vous assurer que l'agent de transfert de messages assume la responsabilité des messages acheminés.
À cette fin, on utilise les options aka ou localdomains. aka remplace la partie domaine par localhost, alors que localdomains conserve la partie domaine, ce qui signifie que l'agent de transfert de messages doit être configuré dans ce sens. Si ce n'est pas le cas, les courriers électroniques seront automatiquement renvoyés et reviendront dans la boite à lettres (mail loop !) au lieu d'être distribués localement. Le fichier .fetchmailrc peut, par exemple, avoir l'aspect suivant :
poll mail.provider.de protocol POP3 aka domain1 domain2  user asterix password
 adam
is *
L'acheminement des messages par l'intermédiaire de l'agent de transfert de messages fonctionne de façon tout à fait normale ; en particulier, des alias peuvent être définis dans le fichier /etc/aliases,
et un tableau virtusertable (sendmail), nécessaire lorsque plusieurs utilisateurs de votre système reçoivent des courriers électroniques avec le même nom d'utilisateur et qu'uniquement la partie domaine est différente ; dans ce cas, une des adresses au moins doit être réattribuée à un autre utilisateur local.

Exemple :
L'adresse suivante arrive dans votre boite à lettres :
name@prov1.de
name@prov2.de
Normalement, tous les courriers électroniques devraient être délivrés dans une boite à lettres locale name. (ou dans une boite à lettre définie dans le fichier aliases)
En conséquence, une des adresses doit tout d'abord être attribuées à un autre utilisateur. À cette fin, utilisez la syntaxe suivante dans le fichier /etc/mail/virtusertable (sendmail) :

name@prov2.de		nom_d'utilisateur_local
Ensuite, SuSEconfig doit être exécuté.

Limitations :

Lorsque vous recevez des courriers électroniques qui ne contiennent pas votre adresse, par exemple d'une liste de diffusion ou un en-tête "copie carbone invisible" (BCC), vous devez veiller à ce que ceux-ci ne soient pas renvoyés avec un message d'erreur (tel que "user unknown"). À cette fin, vous pouvez procéder ainsi (dans .fetchmailrc) :
set no bouncemail
Cependant, de tels courriers électroniques ne peuvent ainsi plus être acheminés aux utilisateurs locaux étant donné que fetchmail et sendmail ne peuvent plus déterminer à qui ces courriers étaient destinés à l'origine. Pour cette raison, ces messages sont acheminés vers le postmaster.
Si vous recherchez une solution sûre qui vous fournisse l'équivalent d'une boite à lettres "multidrop", demandez à votre fournisseur d'accès Internet soit une adresse IP statique et ETRN soit à l'acheminement des messages électroniques par UUCP.

Cependant, si votre fournisseur d'accès ajoute un en-tête additionnel dans lequel se trouve le destinataire final (par exemple Delivered-To: dans postfix ou qmail, X-Originally-To, etc.), vous pouvez configurer fetchmail de telle façon que l'en-tête correspondant soit traité.
À cette fin, vous avez besoin de l'option : envelope

L'entrée correspondante dans .fetchmailrc peut avoir l'aspect suivant :
poll mail.provider.de envelope Delivered-To: protocol POP3
   aka domain1 domain2  user asterix password adam is *
Si vous utilisez qmail, assurez-vous que vous démarrez fetchmail avec l'option --qvirtual qmailprefix-.

L'adresse du destinataire est réécrite :

Dans ce cas, fetchmail n'est pas en mesure d'identifier le destinataire. Ici, la seule possibilité est d'examiner l'en-tête du courrier.

Dans ce cas, nous vous conseillons de définir un utilisateur (par exemple mailer) qui acheminera les messages à l'aide d'un fichier ~/.procmailrc.

À cette fin, vous trouverez des exemple utiles sous http://www.linuxdoc.org/HOWTO/mini/Offline-Mailing.html


Mots-clés: FETCHMAIL, POP3, SENDMAIL, MAIL, COURRIER éLECTRONIQUE, IMAP

Catégories: Messagerie

SDB-fetchmail, Copyright SuSE Linux AG, Nürnberg, Germany - Version: 19. Jul 2002
SuSE Linux AG - Dernière modification: 05. Aug 2002 de ip (sdb_gen 1.40.0)