Fetchmail sur postfixadmin
Fetchmail sur postfixadmin
Préparation de l'environnement
Pourquoi ne pas utiliser fetchmail disponible avec postfixadmin pour récupérer ses mails.
Pour commencer, installez les paquets perl manquants à fetchmail pour le bon fonctionnement
perl -MCPAN -e shell
install>File::Temp
install>DBI
install>MIME::Base64
install>Sys::Syslog
ou
apt-get install libdbi-perl libmime-base64-urlsafe-perl libtest-tempdir-perl liblogger-syslog-perl liblockfile-simple-perl fetchmail
Créez le répertoire et fichier de verrouillage pour fetchmail.
mkdir /var/run/fetchmail
touch /var/run/fetchmail/fetchmail-all.lock
passons maintenant à la modification de fetchmail.pl et de postfixadmin
modification de fetchmail.pl
ouvrez le fichier /var/www/postfixadmin/ADDITIONS/fetchmail.pl et renseignez les lignes suivantes
- database backend - uncomment one of these
- our $db_type = 'Pg';
my $db_type = 'mysql';
- host name
our $db_host="127.0.0.1";
- database name
our $db_name="postfix";
- database username
our $db_username="postfix";
- database password
our $db_password="mon_password";
Si vous avez une base en mysql ce sera
- database backend - uncomment one of these
- our $db_type = 'Pg';
my $db_type = 'mysql';
- host name
my $db_host="127.0.0.1";
- database name
my $db_name="postfix";
- database username
my $db_username="postfix";
- database password
my $db_password="mon_password";
créez le fichier etc/mail/postfixadmin/fetchmail.conf et réinscrivez les variables de connexion dedans MAIS sans "our"
$db_host="127.0.0.1";
$db_name="postfix";
$db_username="postfix";
$db_password="mon_password";
rendez le script exécutable
chmod 755 /var/www/postfixadmin/ADDITIONS/fetchmail.pl
Ouvrez postfixadmin en tant administrateur, cliquez sur "Récuperer les mails" et renseignez le tableau
modification de postfixadmin
Mailbox Votre boite aux lettres local
Server serveur distant : exemple pop.laposte.net)
Auth Type type d'accés en général "password"
User l'user de votre boite distante
Password le password de votre boite distante
Folder
Poll Vérifier toutes les ... minutes // rien mettre on va utiliser le cron
Fetch All cocher pour récuperer tous les messages
Keep cocher pour conserver une copie sur le serveur
Protocol le protocol utilisé (IMAP, POP)
SSL
Vérifiez que la variable est à "YES" dans /var/www/postfixadmin/config.inc.php
// Fetchmail
// If you don't want fetchmail tab set this to 'NO';
$CONF['fetchmail'] = 'YES';
testez en le lancant à la mano à partir de Perl... Il va gueuler car il n'aime pas être lancé en tant que root. C'est pas grave. Pour rectifier cela, faites exécuter fetchmail.pl par le user "facteur"
chown facteur.facteur /var/www/postfixadmin/ADDITIONS/fetchmail.pl
modifiez dans la foulée l'appartenance
de /var/run/fetchmail/fetchmail-all.lock
chown -R facteur:facteur /var/run/fetchmail/
Pour automatiser tout ça, nous allons créer un crontab
ouvrez le fichier : vi /etc/crontab et posez à la fin cette ligne qui lancera la récupération des mails toutes les 5mn
- /5 * * * * facteur perl /var/www/postfixadmin/ADDITIONS/fetchmail.pl > /dev/null 2&>1
les logs
Jul 20 13:45:01 bougnat /USR/SBIN/CRON[9641]: (facteur) CMD (perl /var/www/postfixadmin/ADDITIONS/fetchmail.pl > /dev/null 2&>1 )
Jul 20 13:45:02 bougnat fetchmail-all[9642]: fetch gilles for gilles@xxxx.re
Jul 20 13:45:04 bougnat fetchmail[9643]: Aucun message pour gilles dans pop.laposte.net
Jul 20 13:45:04 bougnat fetchmail-all[9642]: fetch contact@xxxx for gilles@xxxx.re
Jul 20 13:45:07 bougnat fetchmail[9644]: Aucun message pour contact@xxxx.re dans pop.1and1.fr
...
Jul 20 13:50:01 bougnat /USR/SBIN/CRON[9707]: (facteur) CMD (perl /var/www/postfixadmin/ADDITIONS/fetchmail.pl > /dev/null 2&>1 )
Jul 20 13:45:02 bougnat fetchmail-all[9642]: fetch gilles for gilles@xxxx.re
Jul 20 13:45:04 bougnat fetchmail[9643]: Aucun message pour gilles dans pop.laposte.net
Jul 20 13:45:04 bougnat fetchmail-all[9642]: fetch contact@xxxx for gilles@xxxx.re
Jul 20 13:45:07 bougnat fetchmail[9644]: Aucun message pour contact@xxxx.re dans pop.1and1.fr