Serveur de Mail avec PostfixAdmin et MySQL

Dernière mise à jour : 07/09/2010

    Nous allons couvrir dans cet article comment paramétrer un serveur de mail pour s'authentifier à un serveur MySQL (utilisateurs virtuels) et pouvoir envoyer/recevoir des emails de façon transparente avec authentification SMTP/TLS. Ce tutoriel considère que vous avez un apache (ou équivalent) installé avec les modules php5 et mysql activés. Pour plus de sécurité, je conseille d'utiliser une connexion https. J'utilise Debian Squeeze pour cette installation. J'ai ajouté une section sur l'authentification SASL pour l'envoi de mails, voir plus bas. Comme je suis joueur, j'ai aussi ajouté le filtrage des mails avec procmail.

    Installez les paquets suivants : apt-get install postfix libapache2-mod-php5 mysql-client php5-mysql php5-imap dovecot-imapd dovecot-pop3d. Téléchargez ensuite la dernière version de Postfix Admin. Décompactez la dans /var/www. Ensuite lisez attentivement le fichier d'installation (INSTALL.TXT). Il vous faudra modifier config.inc.php en changeant au moins les valeurs suivantes. Je considère dans cet exemple que votre base de données est locale, que votre utilisateur postfix s'appelle postfixmailuser avec des droits sur la base. Enfin mon exemple utilise https.

    Une fois installé et configuré, vous pouvez lancer le setup, allez à l'adresse : https://fqdn.domaine.com/postfixadmin/setup.php qui vous donnera tous les conseils pour tout avoir bien configuré. Il vous demande alors de créer un administrateur. Vous pouvez l'appeller comme vous le voulez (attention, il utilise une adresse email comme identifiant valide). Vous devez ensuite créer les fichiers de configuration pour MySQL et Postfix. Pour ce faire, allez dans /etc/postfix/ :

    Modifiez ensuite votre postfix pour avoir au moins cette configuration minimale :

    Editez ensuite /etc/postfix/master.cf avec les ligness suivantes :

    Loggez vous ensuite sur l'interface de Postfix Admin (avec le compte admin créé précedemment) puis allez dans Domain List/New Domain. On va partir sur l'exemple domaine.com donc crééz le puis allez dans Virtual List/Create Mailbox. On va utiliser le compte luser@domaine.com, donc renseignez bien tous les champs et appuyez sur Add Mailbox.

    Il faut à présent configurer dovecot (alternative à courier que j'utilisais depuis de nombreuses années). Dovecot vous permet de configurer votre POPS/IMAPS de façon très simple. Créez ces deux fichiers :

    Créez ensuite votre utilisateur avec les bons droits :

    Voilà, vous devriez à présent être capables de pouvoir envoyer et recevoir des mails sur votre serveur. Vous pouvez ajouter autant de domaines que vous le voulez. Si vous avez des questions ou des ajouts, merci d'utiliser le forum de préférence.


SASL

    Pour SASL, c'est relativement simple, il vous faut le paquet suivant sous Debian : apt-get install libpam-mysql. Ensuite editez le fichier /etc/pam-mysql.conf comme suit:

    Il ne reste alors qu'à ajouter ceci dans /etc/postfix/main.cf :

    Lancez ensuite un postfix reload et c'est réglé.


Procmail

    Une fois les bonnes options mises, il est relativement simple d'utiliser procmail pour diriger les emails vers le bon endroit. Commencez donc par éditer /etc/postfix/master.cf avec la ligne suivante :

    Ceci va dire à postfix d'utiliser procmail avec des règles se trouvant dans le fichier /etc/postfix/procmailrc.common que nous allons créer de suite :

    Une petite explication rapide sur ce fichier un peu particulier. J'avais envie d'avoir un log des emails reçus, j'ai donc créé un logfile propre à chaque utilisateur. Ensuite le $NEXTHOP défini le domaine, à vous de changer selon votre configuration. Enfin, le point très important pour moi est la possibilité d'avoir un fichier de filtrage par utilisateur, c'est ici qu'intervient SWITCHRC. N'oubliez pas d'attribuer les bonnes permissions au fichier $MAILDIR/.procmailrc afin que l'utilisateur virtuel puisse le lire.

    Il ne nous reste qu'à modifier les lignes suivantes dans /etc/postfix/main.cf :

    Ensuite créez le fichier /etc/postfix/transport et ajoutez les utilisateurs pour lesquels vous voulez filtrer :

    Si vous voulez filtrer tous les utilisateurs, remplacez le virtual_transport par procmail dans votre main.cf. Voilà ceci vous permettra de rediriger vos emails là où vous voulez.


Vous avez des questions ? Pourquoi ne pas les poser sur le forum ?


Notice Légale du site