Après avoir brillamment mis en place un serveur de mail pour un domaine, il se peut que vous souhaitiez héberger sur la même machine d’autres domaines et donc envoyer des mails pour ces différents domaines. C’est ce que nous allons voir...
Je suppose que votre serveur de mail pour la gestion d’un domaine est bien configuré. Sinon, rendez-vous sur l’autre tutoriel.
Ce tutoriel explique comment gérer les mails de plusieurs domaines sur une seule et même machine avec une seule instance de postfix.
Pour la gestion des domaines virtuels, deux solutions : * Gestion des domaines virtuels mais avec des comptes systèmes, ce que je présente ici * Gestion des domaines virtuels avec des comptes virtuels, qui est une solution plus propre mais plus complexe à mettre en place.
J’ai choisi la première solution de part sa simplicité et dans la mesure ou je ne prévois pas d’héberger des milliards de compte ou alors que des comptes de personnes en qui j’ai confiance.
Dans mon cas, j’ai : * Domaine principal : monsite.com * Domaine virtuel : monsite2.com
les mails sur monsite.com marchent au poil. je dois donc ajouter la gestion dans postfix pour les mails et listes de monsite2.com
C’est d’une simplicité déroutante, dans /etc/postfix/main.cf, ajoutez :
# Gestion des domaines virtuels + mailman pour les domaines virtuels
virtual_alias_domains = monsite2.com
virtual_alias_maps = hash:/etc/postfix/virtual_alias
L’instruction “virtual_alias_domains” indique le ou les noms de domines virtuels que postfix doit gérer. S’il y en a plusieurs, ils doivent être séparés par une virgule : toto.com, titi.com, etc.
Ensuite, il faut établir la correspondance entre les adresses mails et les comptes systèmes. Or dans /etc/aliases, on a déjà toute une série d’alias qui sont définis pour gérer les principales adresses. Il faut donc un fichier équivalent.
Le contenu de /etc/aliases :
#/etc/aliases
mailer-daemon: postmaster
postmaster: root
nobody: root
hostmaster: root
usenet: root
news: root
webmaster: root
www: root
ftp: root
abuse: root
noc: root
security: root
root: toto
J’ai ajouté la dernière ligne afin de ne pas consulter les mails de root (surtout si les mots de passe passent en clair donc tout est orienté vers un utilisateur lambda appelé toto.
Ces fichiers indiquent ainsi que toutes les adresses de gauche seront redirigées vers celle de droite.
La gestion de webmaster@monsite.com and co est donc assurée. Tous les mails, dont les spams, arriveront donc sur le compte toto.
Attaquons nous aux alias de monsite2.com :
Il vous faut dans tous les cas créer un compte système qui recevra les emails. Pour ma part, j’ai créé un compte “webmaster-site2”. Je ne pouvais pas créer un compte webmaster sous peine de casser un alias de /etc/aliases.
Une fois défini, créez le fichier /etc/postfix/virtual_alias. Il contient les infos suivantes :
# /etc/postfix/virtual_alias - Gestion des domaines virtuels
#
#
# ne pas oublier de faire un postmap /etc/postfix/virtual_alias apres chaque modification
#
#
# monsite2.com
#
webmaster@monsite2.com webmaster-site2
webmestre@monsite2.com webmaster-site2
info@monsite2.com webmaster-site2
contact@monsite2.com webmaster-site2
Les mails envoyés sur ces quatre adresses atterriront donc dans la boite de webmaster-site2.
Une fois le fichier sauvegardé, il faut que postfix prenne en compte ces modifications :
postmap /etc/postfix/virtual_alias
/etc/init.d/postfix reload (pour que les modifications faites dans main.cf soient également prises en compte)
Là aussi, c’est assez simple (comme quoi...)
Dans /etc/postfix/main.cf, ajouter à l’instruction “virtual_alias_maps” :
hash :/var/lib/mailman/data/virtual-mailman
Ce qui nous donne :
virtual_alias_maps = hash:/etc/postfix/virtual_alias, hash:/var/lib/mailman/data/virtual-mailman
Dans /etc/mailman/m_cfg.py, ajoutez :
# Gestion des domaines virtuels
# POSTFIX_STYLE_VIRTUAL_DOMAINS = ['dom2.ain', 'dom3.ain']
POSTFIX_STYLE_VIRTUAL_DOMAINS = ['monsite2.com']
add_virtualhost('www.modeledulibre.info', 'monsite2.com')</code>
ou bien :
# Gestion des domaines virtuels
# POSTFIX_STYLE_VIRTUAL_DOMAINS = ['dom2.ain', 'dom3.ain']
POSTFIX_STYLE_VIRTUAL_DOMAINS = ['monsite2.com']
VIRTUAL_HOSTS = { 'www.monsite2.com': 'monsite2.com',
'www.do.main.two': 'do.main.two',
}
Rajoutez ensuite dans votre fichier de virtual host apache :
ScriptAlias /mailman/ /usr/lib/cgi-bin/mailman/
Alias /pipermail/ /var/lib/mailman/archives/public/
<Directory /usr/lib/cgi-bin/mailman/>
AllowOverride All
Options ExecCGI
Order allow,deny
Allow from all
</Directory>
Relancez Apache, Postfix et Mailman pour que vos modifications soient prises en compte.
Rendez vous alors sur http://www.monsite2com/mailman/create.
Bizarrement, en tapant http://monsite2com/mailman/create il me dit que mon virtual host n’existe pas...
C’est fini...