3 votes

postfix smtp_generic_maps avec expression régulière

Je viens de commencer à jouer avec la réécriture de l'adresse de l'expéditeur avec postfix. Je fais tourner un serveur avec debian-7.11 et postfix-2.9.6 .

Contenu de /etc/postfix/main.cf :

[...]
smtp_generic_maps = hash:/etc/postfix/generic
[...]

Contenu de /etc/postfix/generic :

santiago@uranus.caoba.fr        santiago.uranus.caoba.fr@caoba-mail.fr
auguste@uranus.caoba.fr         auguste.uranus.caoba.fr@caoba-mail.fr

Et jusqu'à présent, cela fonctionne. Lorsque l'utilisateur santiago envoie un courrier électronique, il est envoyé en tant que santiago.uranus.caoba.fr@caoba-mail.fr et c'est ce que je veux.

Mon problème est que je veux que cette réécriture puisse être effectuée avec n'importe quel utilisateur sans avoir à ajouter des lignes supplémentaires à /etc/postfix/generic . Je me demandais donc s'il était possible de le faire à l'aide d'une sorte d'expression régulière comme :

(.*)@$hostname  $1.$hostname@caoba-mail.fr

Est-ce possible ?

Merci pour votre aide

Santiago

7voto

anx Points 5996

Le manuel de postfixe indique explicitement quand l'interpolation en regexp o pcre est interdite (principalement parce que les auteurs estiment que son utilisation n'est pas sûre dans ce contexte). Si la cartographie concernée n'indique pas qu'elle ne l'est pas, l'interpolation est disponible par défaut.

Vous pouvez effectuer des mappages plus complexes avec les recherches SQL, mais tant que vos noms d'hôtes sont fixes et ne concernent que des sous-domaines de domaines que vous possédez, les expressions rationnelles suffiront amplement.

Installer un module regexp approprié pour postfix

apt install postfix-pcre

Ajouter le nouveau /etc/postfix/generic.pcre table :

/([a-z]+)@([^.]+)\.caoba\.fr/  $1.$2.caoba.fr@caoba-mail.fr

Modifier le type de tableau ( qui remplace votre hash -cartographie de type ! ):

postconf -e smtp_generic_maps=pcre:/etc/postfix/generic.pcre

Vous voudrez probablement encore vérifier si vous avez append_dot_mydomain activée (il me semble qu'elle était activée par défaut). Debian installe tous les manuels pertinents, donc man 5 generic permet d'obtenir l'explication.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X