Forum Linux.général configuration postfix pour forward d'email avec réécriture envelope+headers

Posté par  . Licence CC By‑SA.
Étiquettes :
1
25
juin
2020

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  . Évalué à 1 (+0/-0). Dernière modification le 25/06/20 à 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  . Évalué à 1 (+0/-0).

      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  . Évalué à 1 (+0/-0).

        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:

        cat > headers << EOF
        From: <personne1@client1.com>
        To: client1.redirect@y.com
        EOF
        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 > 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
        Puis on lance un test sans avoir de véritables mails juste pour faire tourner le moteur :

        /usr/sbin/postmap -hmq -xp:regexp < headers
        Ce qui donne le résultat suivant :

        From: <personne1@client1.com> REPLACE To: <tri@x.com>
        To: client1.redirect@y.com REPLACE From: <client1.redirect@y.com>
        Ce qui me semble être assez proche de ton besoin ?

        eric.linuxfr@sud-ouest.org

Envoyer un commentaire

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n’en sommes pas responsables.