So leiten Sie alle ausgehenden E-Mails von Postfix zu Testzwecken an eine einzelne Adresse um

13

Ich richte einen Testserver für eine webbasierte Anwendung ein, die einige E-Mail-Benachrichtigungen sendet.

Manchmal werden Tests mit echten Kundendaten durchgeführt. Aus diesem Grund muss ich sicherstellen, dass der Server während des Tests keine E-Mails an unsere echten Kunden senden kann.

Ich möchte, dass Postfix so konfiguriert wird, dass ausgehende E-Mails an eine einzelne E-Mail-Adresse weitergeleitet werden, anstatt an das eigentliche Ziel zugestellt zu werden.

Ich verwende Ubuntu Server 9.10.

Danke im Voraus

dieser juan
quelle

Antworten:

19

Richten Sie einen lokalen Benutzer zum Empfangen aller überfüllten E-Mails ein:

adduser mailtrap

Sie müssen in main.cf hinzufügen:

transport_maps = hash:/etc/postfix/transport
luser_relay = mailtrap

Dann erstelle / etc / postfix / transport mit folgendem Inhalt:

localhost :
your.hostname.example.com:
* local:mailtrap

Speichern und dann ausführen: postmap /etc/postfix/transportEndlich Postfix neu starteninvoke-rc.d postfix restart

Alle lokalen E-Mails werden normal zugestellt und externe E-Mails werden an das lokale mailtrapKonto zugestellt.

Andrew Schulman
quelle
Genau das habe ich gesucht ... Danke!
12.
3
Arbeiten für mich , aber erst , nachdem ich hinzugefügt luser_relay = xxxxxin main.cf. Ohne dies würden die E-Mails abprallen.
Alex R
1
Unter Ubuntu können Sie Postfix auch mit neu starten sudo service postfix restart. Der Speicherort Ihrer oben genannten main.cf-Datei ist /etc/postfix/main.cf. Bei der Local onlyErstinstallation und Einrichtung von Postfix können Sie die Installationsoption verwenden.
Mtnorthrop
auf MAC sollten Sie laufen postmap hash:/etc/postfix/transportund sudo postfix stop,sudo postfix start
Bang Dao
das ist toll. Weiß jemand, wie Duplikate beseitigt werden können, wenn eine Nachricht mehrere Empfänger hat?
Graywh
10

Besser ist es, eine virtuelle Alias-Datei zu erstellen:

In /etc/postfix/main.cf:

virtual_alias_maps = pcre:/etc/postfix/virtual

In / etc / postfix / virtual:

/.*@.*/ root

Sie können rootjeden Benutzer ersetzen , der alle ausgehenden E-Mails erhalten soll. Dieses Muster kann optimiert werden, wenn lokale E-Mails normal zugestellt werden sollen (ohne Umleitung):

/.*@(?!hostname\.localdomain$).*/ root

Ursprüngliche Idee hier gefunden: Postfix-Entwicklungsserver - alle ausgehenden E-Mails abfangen

Paul Gideon Dann
quelle
2
Beachten Sie, dass Sie dies möglicherweise im sudo apt-get install postfix-pcreVoraus tun müssen, um… Überraschungen zu vermeiden.
Mirabilos
funktioniert bei mir sehr gut!
Michael-Mammut
Fehler "Benutzer unbekannt in virtueller
Alex R
5

Postfix bietet etwas an, das sich smtp-sink nennt. Standardmäßig werden alle empfangenen E-Mails gelöscht. Spätere Versionen können auch so konfiguriert werden, dass die E-Mail in Dateien erfasst wird.

Hierbei wird technisch gesehen kein Postfix verwendet (sondern ein von Postfix bereitgestelltes Dienstprogramm). Außerdem wird technisch gesehen nicht jede E-Mail an eine einzelne E-Mail-Adresse umgeleitet. Es erfasst jedoch den gesamten Datenverkehr auf Port 25 und gibt diesen in eine Datei aus, die analysiert werden kann.

Kippwagen
quelle
Wie ruft man smtp-sink auf? Die eine Manpage, die ich online gefunden habe, ließ es wie ein normales Programm aussehen, aber wenn es mit Postfix geliefert wurde, ist es nicht auf meinem System installiert (OSX 10.6). Wie würde ich diesen Dienst betreiben?
Chris Bloom
Es gibt eine Manpage für smtp-sink. Aber auch hier werden einige Parameter beschrieben: blog.malowa.de/2011/04/postfix-as-spam-trap-server.html
mailq