Fetchmail et virtual users in bdd RESOLU

Bonjour à tous,

Je suis actuellement en train de me monter un nouveau serveur de messagerie sur une debian!
Jusqu’à présent j’utilise des comptes linux pour gérer les utilisateurs de la messagerie et pour certains je rapatriais les mails d’autres serveurs à l’aide de fetchmail! Je configurais le ~/fetchmail.rc moi même pour chaque utilisateur

Le nouveau serveur que je monte n’utilise plus de compte linux mais des comptes virtuels d’une base Mysql

Je voudrais pouvoir si possible rapatrier les mails comme avant sans avoir si possible à créer de comptes linux et permettre aux utilisateurs via squirrelmail de configurer eux même leurs paramètres de rapatriement.

Petit détail qui a peut-être son importance: Les messages sont stockés au format maildir! avant ils étaient au format mailbox.

Il existe un plugin sur squirrelmail qui permet de faire ça mais le seul inconvénient c’est qu’il ne permet pas de profiter des filtres antispam et antivirus qui sont installé sur mon serveur. Et tout l’intérêt pour moi de rapatrier les mails sur mon serveur est de profiter de ces fonctions!

Donc si vous connaissez un moyen d’y arriver avec fetchmail ce dont je doute ou bien getmail qui semble plus souple. Ou si ni l’un ni l’autre ne le permettent si vous aviez une astuce ou une idée de script qui pourrait générer des fichiers de conf de type .fetchmail.rc à partir de données dans mysql

Merci d’avance pour vos idées!
Edité le 05/09/2007 à 02:12

je pense avoir trouvé une méthode via un script bash
Je vais essayer de créer un script qui va récupérer les données du plugin squirrelmail dans MYSQL pour générer un .fetchmail.rc pour un compte unix unique (par exemple un compte fetchmailuser)
puis lancer dans une tâche cron le fetchmail.rc pour récupérer les mails à intervalles régulier

Les données du plugin fetchmail de squirrelmail se présente sous cette forme dans mysql

le fichier .fetchmail.rc doit se présenter comme ça

Pour le moment mon script ressemble à ça


#!/bin/bash

USER_DB=databaseuser
DB_NAME=databasename
PASSWD_DB=password
HOST=localhost

NUMBER=$(mysql -u ${USER_DB}  ${DB_NAME} --password=${PASSWD_DB} -h ${HOST} <<EOF
 SELECT prefval FROM userprefs WHERE (userprefs.prefkey='mailfetch_server_number');
\q
EOF)
NUMBER=${NUMBER:8}

X=0
while [ $X -ne $NUMBER ]
do

POLL=$(mysql -u ${USER_DB}  ${DB_NAME} --password=${PASSWD_DB} -h ${HOST} <<EOF
 SELECT prefval FROM userprefs WHERE (userprefs.prefkey REGEXP 'mailfetch_alias_$X');
\q
EOF)
echo "poll ${POLL:8}"

PROTO=$(mysql -u ${USER_DB}  ${DB_NAME} --password=${PASSWD_DB} -h ${HOST} <<EOF
 SELECT prefval FROM userprefs WHERE (userprefs.prefkey REGEXP 'mailfetch_port_$X');
\q
EOF)
echo "proto ${PROTO:8}"


VIA=$(mysql -u ${USER_DB}  ${DB_NAME} --password=${PASSWD_DB} -h ${HOST} <<EOF
 SELECT prefval FROM userprefs WHERE (userprefs.prefkey REGEXP 'mailfetch_server_$X');
\q
EOF)
echo "via ${VIA:8}"

USER=$(mysql -u ${USER_DB}  ${DB_NAME} --password=${PASSWD_DB} -h ${HOST} <<EOF
 SELECT prefval FROM userprefs WHERE (userprefs.prefkey REGEXP 'mailfetch_user_$X');
\q
EOF)
echo "user ${USER:8}"


PASS=$(mysql -u ${USER_DB}  ${DB_NAME} --password=${PASSWD_DB} -h ${HOST} <<EOF
 SELECT prefval FROM userprefs WHERE (userprefs.prefkey REGEXP 'mailfetch_pass_$X');
\q
EOF)
echo "pass ${PASS:8}"

IS=$(mysql -u ${USER_DB}  ${DB_NAME} --password=${PASSWD_DB} -h ${HOST} <<EOF
 SELECT user FROM userprefs WHERE (userprefs.prefkey REGEXP 'mailfetch_server_$X');
\q
EOF)
echo "is ${IS:5}"

X=$(($X+1))
done

ce qui me permet de lister presque toutes les infos dont j’ai besoin dans .fetchmail.rc

TODO
Il faut encore que je trouve une solution pour passer d’un password crypté dans mysql à un password non crypté dans .fetchmail.rc [edit] résolu en supprimant la fonction de cryptage du plugin fetchmail de squirrelmail
il faut encore que je traduise le numéro de port dans mysql par le nom du protocol dans .fetchmail.rc (exemple 110–>pop3)[edit] résolu en modifiant le plugin de squirrelmail pour mettre pop3 au lieu de 110
Il faut que je trouve le moyen de faire ça avec plusieurs utilisateurs différents! [edit] c’est fait

Comme c’est mon premier script avec BASH et que je n’y connais rien en progra si certains d’entre vous qui s’y connaissent ont des conseils à me donner à propos de mon scipt je suis à votre écoute

J’espere que je suis assez clair dans mes explications! Sinon hésitez pas à me demander des précisions!
Edité le 05/09/2007 à 02:14

c’est bon sujet clos j’ai reussi a faire mon script et à modifier le plugin fetchmail de squirrelmail pour l’adapter à mes besoins
Merci pour votre écoute attentive ^ ^)