Connecteur POP3 automatique avec fetchmail

But de la manipulation

Sur un serveur de mail interne, je souhaite relever des boites aux lettres internet et les redistribuer dans les boites aux lettres locales.

Prérequis

Il faut que votre connexion internet fonctionne, ainsi que le serveur de mail local.

il vous faut une liste des login et mot de passe du FAI, que vous liez à votre liste de messagerie locale.

Mise en oeuvre

Installer fetchmail par la commande yum -y install fetchmail.

Créer un compte utilisateur nommé fetchmail afin de ne pas utiliser le compte root. Puis, dans le dossier de l’utilisateur, créer un fichier masqué nommé « .fetchmailrc ».

useradd fetchmail
touch /home/fetchmail/.fetchmailrc
chown fetchmail: /home/fetchmail/.fetchmailrc

En terme de sécurité, il faut que le fichier soit protégé correctement, sinon fetchmail va mettre un message d’erreur et ne lancera pas la commande.

Pour ce faire, j’utilise la commande suivante :

chmod 700 /home/fetchmail/.fetchmailrc

Ce qui doit donner ceci :

[root@mail root]# ll -a |grep fetch
-rwx------ 1 fetchmail fetchmail 2402 Jan 15 11:56 .fetchmailrc

Ce fichier .fetchmailrc contiendra la liste des bals à récupérer et la liste des bals à distribuer.

Cela donne un fichier avec des entrées sous la forme :

user "nom_utilisateur_internet" pass "mot_de_passe_internet" is "nom_utilisateur_local" here

Ce fichier contient aussi le nom du serveur pop du FAI bien entendu et ce dernier sera déclaré comme ceci :

poll pop.monfai.fr with proto pop3, with options

Le fichier au complet ressemble donc à ceci :

poll pop.wanadoo.fr with proto pop3, with options
user "MonLoginFAI" pass "MonMotDePasse" is MonLoginLocal here

Test de fetchmail

Pour tester fetchmail, il faut se connecter en tant qu’utilisateur fetchmail et lancer la commande « fetchmail ».

Pour cela il suffit de faire ceci en tant que root :

su - fetchmail


puis,

fetchmail

Vous devez voir défiler la liste de comptes que vous avez créé et les messages d’erreur éventuels.

Attention, si fetchmail arrive à se connecter au serveur pop3, il va rappatrier le message et le supprimer du serveur distant !!

Si vous n’êtes pas sur de vous, vous pouvez utiliser l’option « –keep » en ligne de commande en tapant fetchmail --keep au lieu de « fetchmail tout court.

Vous pouvez également utiliser cette option keep dans le fichier .fetchmailrc.

En voici la syntaxe :

options keep

Il faut mettre cette option à la fin du fichier.

Création du script de démarrage

Voulant démarrer fetchmail en tant que « deamon », je dois créer un script de démarrage dans le dossier /etc/init.d .

Le script est fourni en pièce attachée et voici son contenu :

# fetchmail: Starts Fetchmail
#
# Version: 1.0
#
# chkconfig: 2345 90 10
# description: Demarre et arrete le client POP3 fetchmail.
#
# processname: fetchmail
# config: /home/fetchmail/.fetchmailrc
# hide: true

# Source function library.
. /etc/rc.d/init.d/functions

prog='fetchmail'

#
# Chemin du programme fetchmail
#
FETCHMAIL_BIN='/usr/bin/fetchmail'

#
# Options du programme
# -- auth password - authentification uniquement par mot de passe
# -s mode silencieux
#
FETCHMAIL_OPTIONS="--auth password -s"

#
# Compte utilisateur lançant le programme
#
FETCHMAIL_USER='fetchmail'

#
# Dossier de cet utilisateur ou est stoque le fichier '.fetchmailrc'
#
FETCHMAIL_HOME="/home/fetchmail"

#
# Delai en secondes entre chaque releve de courier
#
FETCHMAIL_DELAY="600"

start()
echo -n $"Starting $prog: "
su - $FETCHMAIL_USER -c "cd $FETCHMAIL_HOME; $FETCHMAIL_BIN $FETCHMAIL_OPTIONS -f $FETCHMAIL_HOME/.fetchmailrc -d $FETCHMAIL_DELAY" >/dev/null
ret=$?
[ $ret -eq 0 ] && touch /var/lock/subsys/fetchmail
echo
return $ret

stop()
echo -n $"Shutting down $prog: "
su - $FETCHMAIL_USER -c "$FETCHMAIL_BIN --quit"
ret=$?
[ $ret -eq 0 ] && rm -f /var/lock/subsys/fetchmail
echo
return $ret

restart()
echo $"Restarting $prog:"
stop
start

# See how we were called.
case "$1" in
start)
start
;;

stop)
stop
;;

restart)
restart
;;

*)
echo $"Usage: $prog start|stop|restart"
exit 1
esac

exit $?

Il faut que ce script soit exécutable pour fonctionner, il suffit donc d’utiliser la commande :

chmod +x /etc/init.d/fetchmail

Activez le « deamon » avec les commandes suivantes :

chkconfig --add fetchmail
chkconfig fetchmail on

fetchmail démarrera ainsi a tous les démarrages du serveur.

Vous pouvez maintenant manipuler fetchmail avec les commandes suivantes :

/etc/init.d/fetchmail start # démarre fetchmail
/etc/init.d/fetchmail stop # stoppe fetchmail
/etc/init.d/fetchmail restart # redémarre fetchmail, lance stop, puis start

A partir de maintenant, si vous n’avez pas d’erreur de login ou de serveur smtp local, vos utilisateurs recevront leur mail interne et externe en ne relevant qu’une seule boite.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.