Comment configurer postfix pour jeter tous les e-mails vers un domaine et relayer tous les autres e-mails?

9

Je dois configurer postfix dans un environnement de développement / test pour filtrer les e-mails afin de ne pas spammer nos clients. Dans nos environnements de test, nous nettoyons toutes nos données utilisateur afin que les adresses e-mail soient remplacées par @localhost, bien que certaines adresses puissent être remplacées par des adresses e-mail valides ultérieurement à des fins de test. Nous relayons tous nos e-mails via un fournisseur tiers pour la livraison, donc ce que j'aimerais faire, c'est configurer postfix pour:

  1. Jetez tout e-mail envoyé à localhost
  2. Relayez tous les e-mails restants à notre fournisseur tiers.

Étant relativement nouveau pour postfix, quelle serait la façon la plus simple de configurer cela?

Bruce P
la source

Réponses:

8

Eh bien, je semble avoir réussi à comprendre cela avec un peu de recherche et de test. Voici ce que je devais faire:

  • Dans /etc/postfix/main.cf:

    transport_maps = hash:/etc/postfix/transport
    smtp_sasl_auth_enable = yes
    smtp_sasl_password_maps = static:<relayhost username>:<relayhost password>
    smtp_sasl_security_options = noanonymous
    smtp_tls_security_level = may
    start_tls = yes
    
  • Dans / etc / postfix / transport:

    localhost discard: 
    localhost.localdomain discard:
    * relay:[smtp.relayhost.com]:587
    

Le relais contourne apparemment également la directive alias_maps, donc pour que les alias continuent de fonctionner, j'ai dû commenter à la fois alias_maps et alias_database, et les remplacer par virtual_alias_maps. Le format de virutal_alias_map est identique à alias_maps, donc c'était un changement facile à faire.

Avec ces changements en place, redémarrez simplement postfix et exécutez également "postmap / etc / postfix / transport" pour construire transport.db. Désormais, tout ce qui est adressé à @localhost ou @ localhost.localdomain est supprimé tandis que tout le reste est relayé via l'hôte spécifié.

Bruce P
la source
1
Ce n'est pas la réponse à la question de l'OP, mais sur une note connexe, voici ce que j'ai fait pour jeter tout le courrier sortant sur un clone temporaire d'une boîte de prod: 1. Ouvrez /etc/postfix/main.cf2. Ajoutez default_transport = discard:Outgoing email disabled on this node3. Redémarrez Postfix: service postfix restart* a reloadpeut être suffisant
deoren