Architecture du serveur mail

Connaissant bien postfix (personnellement et professionnellement, bien que nos derniers serveurs au taf soient sous Exim) et ayant déjà configuré postfix pour l'envoi de mail via php, c'est donc tout naturellement que j'ai retenu cette solution couplée à un Dovecot, un spamassassin et un webmail sous le très prometteur RoundCube.

postfix

Bien que pour le moment il n'y ai qu'un seul domaine géré par le serveur, j'ai choisis de faire une configuration multi-domaines et virtual-user (sans passer par des comptes unix).
Les mails sont donc dans un compte Unix unique : vbox; et ils sont stockés dans un arborescence du type : /home/vbox/domain/compte.

Je mets mon fichier main.cf en annexe.

postfix-mysql et CentOS

Alors là j'ai perdu pas mal de temps. Le postfix de CentOS n'est pas compilé avec l'option MySQL et il n'y a pas de paquet postfix-mysql pour CentOS ! Heureusement Google est mon ami et j'ai trouvé la solution : prendre le postfix de centosplus (présent de base dans CentOS mais pas activé par défaut) :

yum -–enablerepo=centosplus update postfix

Pour éviter de mettre à jour postfix à partir de updates j'ai juste rajouté postfix* dans la liste des paquets exclus (fichier .repo en annexe). Comme j'ai activé centosplus par défaut, j'ai aussi exclus le kernel de centosplus pour privilégier celui d'updates et ainsi éviter les problèmes.

Postfix-mysql

Ce qui est génial avec postfix-mysql, c'est qu'on construit ses requêtes ! On peu donc attaquer n'importe quel structure de base existante ou en faire une soit même. J'ai mis en annexe mes fichiers de conf' ainsi que la structure de ma base.

Dovecot

Maintenant que les mails sont sur le serveur, faudrait pouvoir les lire ! J'ai donc utilisé l'excellent Dovecot pour me faire un serveur IMAP.
Sa configuration est simple, je me suis basé sur ce tutoriel.

Afin de pouvoir attaquer le serveur mail avec un client du type ThunderBird, ne pas oublier d'ouvrir le port IMAP, le 143 (perso, je passe par le tui system-config-securitylevel-tui).

RoundCube

Excellent et très prometteur projet encore au stade de la O.1 RC1 et disponible dans le dépot EPEL. Ça configuration passe comme une lettre à la poste !

Spamassassin

Pour installer spamassassin rien de tel qu'un petit yum install spamassassin (installation), suivi d'un service spamassassin start (démarrage du service) ainsi que d'un chkconfig spamassassin on (lancer au démarrage) et surtout une lecture de la doc.

Script de création de comptes mail

Histoire de créer facilement des comptes mails, je me suis fait 3 petits scripts tout simples que je vous livre en tant que démo.

Remarque : Ces script sont appelés en root et j'ai un fichier /root/.my.cf contenant le mot de passe MySQL du root, ce mot de pase ne m'est donc plus demandé.