Transférer le courrier Postfix basé sur regexp

Nous construisons un système de tickets en utilisant PHP. Nous sums maintenant tombés sur le problème de l'identification des réponses des clients.

  • Placer un identifiant dans le sujet ne le fera pas parce que les users pourraient le supprimer.
  • L'affichage d'un ID dans un en-tête personnalisé ne le sera pas parce que certains clients de messagerie le supprimeront.
  • L'affichage d'un code dans le corps du message ne le fera pas non plus, car tout comme avec le sujet, les users peuvent le supprimer.

Nous avons pensé à placer l'identifiant dans l'adresse e-mail. t<ticketid>@mydomain.com

Cependant, nous ne soaps pas comment redirect ceci vers [email protected]

Mon conseil serait d'utiliser des sous-adresses + style: support+<ticketid>@mydomain.example . Postfix livrera ces mails comme s'ils étaient envoyés à [email protected] , en ignorant la sous-adresse.

Postfix permet également de définir un caractère différent à utiliser. Définissez le paramètre recipient_delimiter dans votre /etc/postfix/main.cf aux valeurs souhaitées:

 recipient_delimiter = +- 

Cela permettrait à la fois [email protected] et [email protected] , en gérant les deux adresses de la même manière.

Certaines dissortingbutions Linux sont livrées avec un postfix avec recipient_delimiter mis à + , de sorte que cela peut déjà fonctionner immédiatement.

Vous pouvez utiliser virtual_alias_maps [*]:

 virtual_alias_maps = regexp:/etc/postfix/aliases 

et remplissez / etc / postfix / alias avec

 /t(.*)@mydomain.com/ [email protected] 

vous pouvez bien sûr affiner l'expression rationnelle pour qu'elle corresponde exactement à votre code de ticketid (c.-à-d. uniquement des numéros, etc.) ou utiliser des references arrières.

[*] si vous n'utilisez pas de domaines virtuels dans postfix, vous pouvez également utiliser alias_maps, mais comment cela fonctionne peut parfois être déroutant, lisez https://serverfault.com/questions/644306/confused-about-alias-maps- et-virtual-alias-maps à ce sujet