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

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.


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


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.


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