Activer plusieurs comptes mail et une adresse « catchall » dans Postfix
Sur mon serveur de mail Postfix, j'ai plusieurs utilisateurs configurés qui peuvent recevoir et envoyer des mails. Certaines adresses sont « virtuelles » et sont en réalité des alias vers d'autres adresses. Rajouter un « catchall » sur mon domaine signifie perdre mes différents utilisateurs. Mais une solution existe.
Mon serveur postfix autorise l'envoi de mails à des adresses de la forme <LOGIN>@quack1.me
— <LOGIN>
étant un nom d'utilisateur sur le système.
Parfois, j'ai voulu que les mails adressés à des adresses différentes arrivent dans la mailbox d'un seul utilisateur. J'ai utilisé le principe des alias (en les renseignant dans le fichier /etc/aliases
).
Ensuite, pour ne pas perdre de mails envoyés à des adresses inconnues de mon système, j'ai rajouté un système de « catchall » à mon Postfix.
La configuration de base que j'ai trouvé sur Internet consistait à dire à Postfix de relayer tous les mails reçus à une seule adresse. Le problème c'est que du coup, même les mails envoyés aux utilisateurs connus du système sont envoyés à mon catchall.
J'ai fouillé un peu plus, et j'ai trouvé une troisième solution (qui elle me convient).
On n'utilise plus que le fichier /etc/postfix/virtual
pour définir les utilisateurs (réels et les alias) et pour le catchall.
Première modification, dans le fichier de configuration /etc/postfix/main.cf
:
#alias_maps = hash:/etc/aliases #alias_database = hash:/etc/aliases virtual_alias_maps = hash:/etc/postfix/virtual virtual_alias_domains =
Dans le fichier /etc/postfix/virtual
, je défini 3 choses :
- Les « vrais » adresses, ceux qui ont un compte sur le système ;
- Les alias, et à quel compte les courriers sont redirigés ;
- Le catchall.
Les deux premiers cas sont identiques en pratique. Je note, sur chaque ligne du fichier, l'adresse à qui le mail est destiné, et à droite le nom du compte qui va recevoir l'adresse.
# "Real" addresses user@domain.com user girlfriend@domain.com girlfriend # Aliases root@domain.com admin+root contact@domain.com root
Notes pour ce point : Les adresses définies dans la première colonne sont les adresses de base de remise des mails, donc les délimiteurs (comme le '+' fonctionnent). Si j'envoie un courriel à root+blog@domain.com
, il sera délivré à admin+root
. De plus, on peut définir dans la deuxième colonne un alias comme adresse de réception du message.
Enfin, pour gérer le catchall, on rajoute une ligne en bas du fichier.
################################# # Catch-All ################################# @domain.com catchall
Tous les mails envoyés à domain.com
, et qui n'auront pas été transmis à partir de la liste des comptes définis plus haut, seront remis dans la mailbox de catchall
.
Pour appliquer la configuration, on relance Postfix.
# postmap /etc/postfix/virtual # service postfix reload
Voilà, il y a peut être des solutions plus propres pour le faire, mais celle-ci fonctionne et elle est assez simple à mettre en place! 😃