Comment rediriger tous les e-mails sortants de postfix vers une seule adresse pour les tests

13

Je configure un serveur de test pour une application Web qui envoie des notifications par e-mail.

Parfois, les tests sont effectués avec de vraies données client, et pour cette raison, je dois garantir que le serveur n'est pas en mesure d'envoyer des e-mails à nos clients réels pendant que nous testons.

Ce que je veux, c'est configurer postfix pour qu'il prenne tout e-mail sortant et le redirige vers une seule adresse e-mail, au lieu de le livrer à la destination réelle.

J'utilise le serveur Ubuntu 9.10.

Merci d'avance

thatjuan
la source

Réponses:

19

Configurer un utilisateur local pour recevoir tous les e-mails bloqués:

adduser mailtrap

Vous devez ajouter dans main.cf:

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

Ensuite, créez / etc / postfix / transport avec ceci dedans:

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

Enregistrer puis exécuter: postmap /etc/postfix/transportenfin redémarrer postfixinvoke-rc.d postfix restart

Tous les courriels locaux seront livrés normalement et les courriels externes seront livrés au mailtrapcompte local .

Andrew Schulman
la source
C'est exactement ce que je cherchais ... merci!
thatjuan
3
Travaux pour moi , mais seulement après que j'ajouté luser_relay = xxxxxdans main.cf. Sans cela, les e-mails rebondiraient.
Alex R
1
Lorsque vous utilisez Ubuntu, vous pouvez également redémarrer Postfix avec sudo service postfix restart. L'emplacement de votre fichier main.cf mentionné ci-dessus est /etc/postfix/main.cf. Lors de la première installation et configuration de Postfix, vous pouvez utiliser l' Local onlyoption d'installation.
mtnorthrop
sur MAC, vous devriez courir postmap hash:/etc/postfix/transportet sudo postfix stop,sudo postfix start
Bang Dao
c'est bien. quelqu'un sait-il comment éliminer les doublons lorsqu'un message a plusieurs destinataires?
graywh
10

Mieux vaut créer un fichier d'alias virtuel:

Dans /etc/postfix/main.cf:

virtual_alias_maps = pcre:/etc/postfix/virtual

Dans / etc / postfix / virtual:

/.*@.*/ root

Vous pouvez remplacer rootpar l'utilisateur que vous souhaitez recevoir tous les e-mails sortants. Ce modèle peut être modifié si vous souhaitez que le courrier local soit livré normalement (sans redirection):

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

Idée originale trouvée ici: serveur de développement Postfix - intercepte tout le courrier sortant

Paul Gideon Dann
la source
2
Notez que vous devrez peut-être au sudo apt-get install postfix-pcrepréalable, pour éviter… des surprises.
mirabilos
fonctionne très bien pour moi!
michael-mammut du
erreur "Utilisateur inconnu dans la table des alias virtuels"
Alex R
5

Postfix fournit quelque chose appelé smtp-sink. Par défaut, il met en noir tous les e-mails qu'il reçoit. Les versions ultérieures peuvent également être configurées pour capturer l'e-mail dans des fichiers.

Techniquement, cela n'utilise pas postfix (mais un utilitaire fourni par postfix.) Il ne redirige pas non plus techniquement chaque e-mail vers une seule adresse e-mail. Mais il capture tout le trafic sur le port 25 et le sauvegarde dans un fichier qui peut être analysé.

chariot renversé
la source
Comment invoquer smtp-sink? La page de manuel que j'ai trouvée en ligne donne l'impression que c'est un programme normal, mais s'il est fourni avec postfix, il n'est pas installé sur mon système (OSX 10.6). Comment exécuter ce service?
Chris Bloom
Il existe une page de manuel pour smtp-sink. Mais certains paramètres sont également décrits ici: blog.malowa.de/2011/04/postfix-as-spam-trap-server.html
mailq