postfix: cómo redirige todos los correos electrónicos a un usuario, por ejemplo, *@ejemplo.com → usuario@ejemplo.com


27

Estoy usando postfix para mi correo electrónico. Sé que puedo usar el comando / etc / aliases y newaliases para redirigir ciertos correos electrónicos, por ejemplo, puedo redirigir root@example.com a user@example.com colocando root: usermi / etc / aliases y luego ejecutándolo newaliases. Sin embargo, me gustaría hacer el equivalente de *: user, para que todo el correo electrónico a example.com se envíe a user@example.com.

¿Cómo hago esto?

Respuestas:


19

luser_relay = user@example.comen tu main.cfes lo que quieres.

Para deshabilitar la comprobación de usuarios y aceptar todos los correos, debe agregar la local_recipient_maps =opción. Documentación


1
Agregué eso a main.cf y reinicié postfix. Recibí el siguiente error en /var/log/main.info: <pre> 550 5.1.1 <myrandom@example.org>: Dirección del destinatario rechazada: Usuario desconocido en la tabla de destinatarios local; from = <me@gmail.com> to = <myrandom@example.org> </pre>
Rory

Así que example.org no está en su lista de dominios de destinatarios locales, o alguna otra cosa ha sido mal configurada.
womble

77
Lo tengo funcionando. Además de la opción luser_relay que mencionó, también debe agregar la opción "local_recipient_maps =". Esta página de documentación de postfix explica que: postfix.org/postconf.5.html#luser_relay
Rory

¿Este método conserva la dirección de correo electrónico A? (los mapas virtuales reescribe y a la original: la dirección se pierde.)
user14645

1
Las preguntas de @Sverre son para preguntas, no comentarios sobre respuestas de siete años a preguntas relacionadas tangencialmente.
womble

17

Lo que está buscando es una tabla de alias virtual y se puede hacer usando lo siguiente ...

Primero debe editar o crear, si aún no existe, el archivo / etc / postfix / virtual .

example.com   whatever
@example.com  user@example.com

Después de que esto se haya guardado, deberá ejecutarlo postmap /etc/postfix/virtualpara generar el /etc/postfix/virtual.db indexado que se leerá Postfix.

Luego deberá editar el /etc/postfix/main.cf y asegurarse de que la siguiente línea no esté comentada :

virtual_alias_maps = hash:/etc/postfix/virtual

En realidad, esto permitirá que Postfix conozca la tabla de alias virtual y la use.

El problema con el uso de la luser_relayopción, como han mencionado otros, es que el agente de entrega local lo trata como el usuario de los últimos recursos para direcciones desconocidas. Si postfix solo maneja el correo para un dominio, esto puede utilizarse para esto, pero puede enmascarar otros errores de configuración y probablemente causará resultados inesperados si se maneja más de un dominio.

La única advertencia que me siento obligado a mencionar es que al crear un alias comodín de esta naturaleza, está abriendo su sistema de correo para aceptar mensajes de direcciones que no existirán y corre el riesgo de que el buzón se llene rápidamente con correo no deseado por inexistente buzones


8

En realidad es bastante simple. Todo lo que necesitas hacer es poner algo como esto en tu main.cfarchivo:

virtual_alias_maps = regexp:/etc/postfix/virtual_alias

La regexpparte hace el truco. Además, /etc/postfix/virtual_aliaspones algo como esto:

/^test/ you@yourdomain.com

En este ejemplo, debería recibir todo el correo con destino comenzando con 'prueba'. No olvides postmap / etc / postfix / virtual_alias y recargar postfix.


6

Para combinar una respuesta / comentario anterior que me resultó más fácil (tengo un dominio principal):
Agregue lo siguiente a /etc/postfix/main.cf:

luser_relay = user@domain.com (or local system user)
local_recipient_maps =

( local_recipient_maps =no tiene ningún valor establecido)

Utilizo una cuenta de usuario local de Linux y también agrego el mismo usuario a / etc / aliases para que el usuario reciba todo el correo en root, postmaster, etc.

También puede combinar esta misma dirección en su virtual_alias_mapsy señalar cualquier entrada de dominio virtual en esta misma cuenta primaria.

Por favor, consulte luser_relay para más información.


3

Si desea usar una dirección general para midominio, puede usarlo /etc/aliasescombinado con una expresión regular de la siguiente manera:

En /etc/postfix/main.cfagregar
alias_maps = hash:/etc/aliases, regexp:/etc/postfix/catch-all-local.regexp

En /etc/postfix/catch-all-local.regexpagregar
!/^owner-/ your-catch-all-user

Esto debería funcionar. Funcionó para mí y funciona con virtual_alias_maps establecidos en paralelo.


0

Hay un tipo de tabla de búsqueda estática menos conocido en Postfix, que puede usarse exactamente para este propósito:

alias_database = static:user@example.com
alias_maps = static:user@example.com

Si user@example.com no es local para este sistema, es probable que también desee descartar todos los mensajes de rebote reemplazando las líneas que terminan bouncecon discardin master.cfpara evitar los bucles de correo.


-4

Odio ser un aguafiestas, pero tu problema es que estás usando Postfix. Postfix hace precisamente este ejercicio muy difícil. Lo sé: tuve que hacerlo hace algunos años y me tomó días y días hacerlo bien. La luseropción es la correcta, pero también hay otras cosas que hacer bien. (E incluso el nombre de la opción muestra que los autores de Postfix realmente no querían apoyar esto).

Recomiendo cambiar a Courier. Courier admite este método "general" de una manera mucho más sensible debido a la forma en que extiende su sistema de alias existente.


1
Postfix no lo dificulta en absoluto. Los alias virtuales son la forma estándar de hacer catchalls en Postfix y son muy fáciles. Dicho esto, en cualquier cosa que no sea un servidor de correo de juguete para su propio dominio personal, las trampas son una muy mala idea.
Rob Chanter el
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.