Wie kann ich einige E-Mails an ein Skript in Postfix weiterleiten?


8

Wie leite ich alle E-Mails an user-*@example.com (dh user-1234@example.com) an einen Pipe-Befehl in Postfix weiter? Die Idee ist, eine Anonymisierung im Craigslist-Stil zu erstellen, indem jedem Benutzer dynamische E-Mail-Aliase zugewiesen werden. Ich kann jedoch keine relevanten Informationen in der Dokumentation finden.

Antworten:


8

Okay. Und jetzt ein anderer Ansatz.

Legen Sie einen neuen Transport in master.cf:

coolscript unix -    n    n    -    50    pipe
    flags=R user=vmail argv=/path/to/script -o SENDER=${sender} -m USER=${user} EXTENSION=${extension}

Sie können die Parameter beliebig erweitern / ändern.

Dann (um pcre zu eliminieren) können Sie regexp verwenden, um das "catch-thing" in main.cf:

transport_maps = regexp:/etc/postfix/redirect.regexp

Und in /etc/postfix/redirect.regexpdich setzen:

/^user-.*@example\.com/   coolscript:

Postfix mit neu laden mit postfix reload.


Wenn ich /example.com/ setze, funktioniert es und meine Daten werden aufgezeichnet. Wenn ich /^user-.*@example.com/ setze, wird ein Relay-Zugriff verweigert. Irgendeine Idee, warum? Ich habe bereits Relay_Domains = $ mydestination, $ transport_maps, aber anscheinend löst das das Problem nicht
Christopher Thomas

4

Überprüfen Sie zunächst, ob Sie pcre in Posfix mit kompiliert haben postconf -m. Dann können Sie einstellen main.cf:

virtual_alias_maps = pcre:/etc/postfix/redirect.pcre

und in /etc/postfix/redirect.pcredich setzen:

/^user-.*@example\.com$/   somelocalalias

und in /etc/aliasesSie hinzufügen

somelocalalias: |"/path/to/script"

Vergessen Sie nicht, postalias /etc/aliasesPostfix mit und anschließend neu zu laden postfix reload.


Gibt es einen Grund, warum Sie pcre über regexp vorschlagen? Sollte ich die Pipe nicht auch in master.cf angeben?
Nick Colgan

1
@Wenn Sie die Antwort kennen, warum fragen? Sicher gibt es mehr Möglichkeiten, dasselbe zu erreichen. Wenn Sie Regexp bevorzugen, dann machen Sie es. Sogar Transporte in master.cf können dies tun, wenn Sie auf Fallstricke achten.
Mailq

Dies war die Magie, die ich brauchte, um mein Skript zum Laufen zu bringen. Der Transport funktionierte aus irgendeinem Grund nicht, dies funktionierte zum ersten Mal.
n0nag0n

Unter welchem ​​Benutzer wird das Skript /etc/aliasesausgeführt?
Marki555
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.