Bonjour,
J'ai un besoin de configurer un serveur email pour un client (appelons le Y). L'idée, c'est d'avoir un forward d'un email (comprenant les pièces jointes) vers un service (appelons le X).
Ce service X permet de trier les pièces jointes suivant l'expéditeur de l'email. Mais il ne comprends pas les alias, les redirections, etc.
Du coup, il faudrait faire ce boulot pour lui.
Un email de type :
from: personne1@client1.com, to: client1.redirect@y.com
doit devenir
from: client1.redirect@y.com, to: tri@x.com
Avec canonical
sous postfix, je peux faire un mapping sender original -> sender modifié
et recipient original -> recipient modifié
.
Il me faudrait plutôt un: sender original -> recipient original
et recipient original -> email service X
Quelqu'un a des idées sur les arcanes de postfix pour faire ça? Ou il faut limite se faire un SMTP codé à la main pour ce besoin ?
# Config du serveur de destination ?
Posté par rycks . Évalué à 1. Dernière modification le 25 juin 2020 à 16:11.
Hello,
le serveur de destination se comporte comment ? car si tu fais des modifications d'entête attention à DKIM et autres SPF … le serveur "final" de destination risque de dropper les mails sous prétexte qu'ils arrivent d'un serveur qui n'a pas le droit d'envoyer des mails pour le domaine bidule…
mais sinon oui tu peux jouer à ça avec postfix, tout est modifiable
http://www.postfix.org/ADDRESS_REWRITING_README.html
j'aurais tendance à creuser du côté de smtp_generic_maps et des pcre puisque ça permet de modifier le from des mails sortants (on avait ça dans les écoles pour que les mails des enfants soient transformés pour que ça soit leur instit qui soit expéditeur pour gérer les retours de mails)
ou via le dev d'un script externe que postfix lancera (via master.cf ou procmail)
eric.linuxfr@sud-ouest.org
[^] # Re: Config du serveur de destination ?
Posté par 16aR . Évalué à 1.
Comme dit, de ce que je vois, c'est principalement utilisé pour faire de la mise au norme (soit pour faire passerelle avec des système de mails legacy, soit pour cacher des serveurs de mail interne et faire passer par un serveur public + standard).
Et du coup, avec ça, tu peux changer un sender par un autre sender, et un recipient par un autre recipient. Mais pas faire du matching entre les 2 tables de correspondances.
À moins que je ne me trompe. J'ai lu cette documentation, et je ne vois toujours pas comment faire. J'ai passé 1 demi-journée dessus hier.
[^] # Re: Config du serveur de destination ?
Posté par rycks . Évalué à 1.
Ok, alors avec le peu que j'ai compris de ton problème voilà la piste qui me semble "creusable":
Soit un fichier mail "headers" minimaliste de test qui reprend ton besoin:
Soit un fichier de réécriture de tests (vive les expressions régulières, à voir si le From ou le To est à mettre en premier des fois que la 2° n'aille pas réécrire la 1ere):cat > headers << EOF
From: <personne1@client1.com>
To: client1.redirect@y.com
EOF
Puis on lance un test sans avoir de véritables mails juste pour faire tourner le moteur :cat > regexp << EOF
if /^To: (.*)@y.com/i
/^To: (.*)@y.com/i REPLACE From: <${1}@y.com>
endif
if /^From: (.*)@client1.com/i
/^From: (.*)@client1.com/i REPLACE To: <tri@x.com>
endif
EOF
Ce qui donne le résultat suivant :/usr/sbin/postmap -hmq -xp:regexp < headers
Ce qui me semble être assez proche de ton besoin ?From: <personne1@client1.com> REPLACE To: <tri@x.com>
To: client1.redirect@y.com REPLACE From: <client1.redirect@y.com>
eric.linuxfr@sud-ouest.org
[^] # Re: Config du serveur de destination ?
Posté par 16aR . Évalué à 1.
En effet, ça semble reprendre le besoin !
Par contre, ton fichier regexp, tu le mets où une fois que tu as pu tester tout ça ?
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.