¿Cómo configurar postfix para tirar todo el correo electrónico a un dominio y retransmitir todos los demás correos electrónicos?

9

Necesito configurar postfix en un entorno de desarrollo / prueba para filtrar correos electrónicos para que no enviemos spam a nuestros clientes. En nuestros entornos de prueba, depuramos todos nuestros datos de usuario para que las direcciones de correo electrónico se cambien a @localhost, aunque algunas direcciones podrían cambiarse a direcciones de correo electrónico válidas en un momento posterior para fines de prueba. Retransmitimos todo nuestro correo electrónico a través de un proveedor externo para la entrega, por lo que lo que me gustaría hacer es configurar postfix para:

  1. Tire cualquier correo electrónico enviado a localhost
  2. Transmita todo el correo electrónico restante a nuestro proveedor externo.

Siendo relativamente nuevo para postfix, ¿cuál sería la forma más fácil de configurar esto?

Bruce P
fuente

Respuestas:

8

Bueno, parece que he logrado resolver esto con un poco de búsqueda y prueba. Esto es lo que tuve que hacer:

  • En /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
    
  • En / etc / postfix / transport:

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

Aparentemente, la retransmisión también omite la directiva alias_maps, por lo que para que los alias continúen funcionando tuve que comentar tanto alias_maps como alias_database, y reemplazarlos con virtual_alias_maps. El formato de virutal_alias_map es idéntico a alias_maps, por lo que fue un cambio fácil de hacer.

Con estos cambios en su lugar, simplemente reinicie postfix y también ejecute "postmap / etc / postfix / transport" para construir transport.db. Ahora todo lo dirigido a @localhost o @ localhost.localdomain se descarta mientras todo lo demás se transmite a través del host especificado.

Bruce P
fuente
1
Esta no es la respuesta a la pregunta del OP, pero en una nota relacionada, esto es lo que hice para tirar todo el correo saliente en un clon temporal de un cuadro de productos: 1. Abrir /etc/postfix/main.cf2. Agregar default_transport = discard:Outgoing email disabled on this node3. Reiniciar Postfix: service postfix restart* a reloadpuede ser suficiente
deoren