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

8

Wie leite ich alle E-Mails an user-*@example.com (dh [email protected]) 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.

Nick Colgan
quelle

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.

mailq
quelle
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.

mailq
quelle
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