Correo proxy a diferentes servidores SMTP con Postfix

11

¿Cómo puedo reenviar (o proxy) correo a diferentes servidores smtp dependiendo de la dirección de destino?

Tengo una máquina con un servidor SMTP (postfix) escuchando en el puerto 25. Quiero usar Lamson ( http://lamsonproject.org/ ) para manejar algunos correos entrantes y algunos correos que quiero tener postfix para manejar.

Mi idea es configurar Lamson para escuchar en un puerto diferente, digamos localhost: 10025. Luego configuré postfix para atrapar todo el correo escuchando en el puerto 25.

¿Cómo configuro Postfix para enviar un proxy a cierto correo a Lamson en 10025 y manejar el resto del correo?

Mattias
fuente

Respuestas:

18

Postfix es extremadamente flexible (y, por lo tanto, complejo) en su configuración, por lo que hay varias formas de lograrlo. La forma más sencilla probablemente sería usar una transport(5)tabla.

Primero, habilite el uso de una tabla de transporte en postfix:

/etc/postfix/main.cf:
    transport_maps = hash:/etc/postfix/transport

También tendrá que asegurarse de que Postfix acepte correos para las direcciones que serán manejadas por Lamson. Eche un vistazo a permit_auth_destinationlas reglas que Postfix aplicará para determinar las direcciones de destinatario válidas. Para el siguiente ejemplo, suponiendo que "ejemplo.com" es un dominio no conocido por Postfix, probablemente sea más fácil simplemente agregarlo como dominio de retransmisión:

/etc/postfix/main.cf:
    relay_domains = example.com

Luego, crea una tabla apropiada. Por ejemplo, para redirigir todo el correo del dominio "example.com", así como el correo de "[email protected]" a su escucha local de Lamson en el puerto 10025:

/etc/postfix/transport:
    example.com          smtp:127.0.0.1:10025
    [email protected]    smtp:127.0.0.1:10025

Después de eso (y luego una vez después de cada actualización del archivo de la tabla de transporte) no olvide ejecutar:

$ postmap /etc/postfix/transport

Esto debería ponerte en marcha. Asegúrese de leer la transport(5)página de manual, que le dará más ideas sobre cómo usar esta poderosa instalación.

conde
fuente
Hola, gracias por el consejo. Todavía tengo problemas para reenviar el correo después de seguir sus instrucciones. Recibo NOQUEUE: rechazar: RCPT de {my-mail-relay} Dirección del destinatario rechazada: Usuario desconocido en la tabla de destinatarios local. ¿Algunas ideas?
Mattias
Ah sí, también tendrá que asegurarse de que Postfix acepte el correo que se reenviará a example.com (ya que Postfix ahora actúa como un retransmisor para Lamson). Si su Postfix está sirviendo principalmente a otro dominio, la forma más fácil de lograr esto es agregando el "dominio Lamson" relay_domains. Actualicé para responder para incorporar esto.
earl
1
Gracias, después de seguir sus pasos, todavía tenía algunos problemas para obtener postfix para reconocer localhost como un host válido. Ejecuté el comando postconf -e 'smtp_host_lookup = dns, native' y eso resolvió mi problema, postfix ahora reenvía el correo que quiero a Lamson.
Mattias
1
Es bueno saber que funciona. En lugar de cambiar smtp_host_lookup, también puede usar en 127.0.0.1lugar de localhost. He actualizado la respuesta para acomodar esa mejora.
earl