Postfix: ¿que son exactamente los dominios de alias?

12

¡Pensé que entendía "Alias ​​dominios" como que es simplemente un alias para otro dominio! Entonces, cuando configuro un buzón como "[email protected]" y agrego "alias.com" como un alias de dominio para "main.com", la dirección "[email protected]" también funcionaría ... Pero no !

Entonces, he agregado estos dominios:

  • main.com
  • alias.com

He creado este buzón:

Luego mapeé estos dominios de alias:

  • alias.com => main.com

Y luego, cuando envío un correo electrónico a [email protected], recibo este error:

Recipient address rejected: User unknown in virtual mailbox table (state 13).

No quiero crear un alias para cada dominio, ya que tengo algunos. Tampoco quiero usar un comodín (como info @ *) porque también hay otros dominios que no son alias demain.com

Entonces ... ¿qué son exactamente?

skerit
fuente
Esperaba lo mismo y todavía no entiendo por qué ese no es el caso.
Josh M.

Respuestas:

4

La explicación está en la documentación: http://www.postfix.org/VIRTUAL_README.html#virtual_alias

Desea "buzones de alias", también conocidos como virtual_mailbox_alias y virtual_mailbox_maps, pero habla de "alias dominios": http://www.postfix.org/ADDRESS_CLASS_README.html#virtual_alias_class

mailq
fuente
3
Parece que no puedo entender los documentos: ¿cómo tiene domain1.comalias algún buzón <mailbox>@domain2.com?
Josh M.
2
@JoshM. Puede usar una tabla hash virtual_alias_mapscon una entrada del formulario @domain1.com @domain2.com. Vea mi respuesta para más detalles.
Sam Hanes
12

Agregar alias.coma virtual_alias_domainses el primer paso correcto, pero eso solo le dice a Postfix que desea usar ese dominio para los alias. No dice cuáles deberían ser los alias. Para eso, debe usar un mapa de alias virtual.

Primero, agregue algo como esto a main.cf:

virtual_alias_domains = alias.com
virtual_alias_maps = hash:/etc/postfix/virtual

Agregar virtual_alias_mapsle proporciona un archivo ( /etc/postfix/virtual) que se utiliza como un mapa de alias virtual. ¿Pero qué pones en ese archivo? De acuerdo con la página de manual virtual (5) :

El formato de entrada para el comando postmap (1) es el siguiente:

  pattern address, address, ...

Cuando el patrón coincida con una dirección de correo, reemplácela por la dirección correspondiente.

y

Con búsquedas de archivos indexados como DB o DBM, o de tablas en red como NIS, LDAP o SQL, cada consulta de usuario @ dominio produce una secuencia de patrones de consulta como se describe a continuación. Cada patrón de consulta se envía a cada tabla de búsqueda especificada antes de intentar el siguiente patrón de consulta, hasta que se encuentre una coincidencia.

...

@domain address, address, ...

Redireccionar el correo para que otros usuarios en el dominio se dirijan

y

El resultado de la búsqueda está sujeto a la reescritura de direcciones: cuando el resultado tiene el formulario @otherdomain, el resultado se convierte en el mismo usuario otherdomain. Esto funciona solo para la primera dirección en un resultado de búsqueda de direcciones múltiples.

Por lo tanto, al poner esto, /etc/postfix/virtualobtendrá el alias de dominio completo que desea:

# map any <user>@alias.com to the matching <user>@main.com
@alias.com     @main.com

Luego, dado que ese archivo es una tabla hash, debe ejecutar postmap( explicación , página de manual ):

postmap /etc/postfix/virtual

Puede encontrar más información sobre dominios virtuales en el CÓMO de dominio virtual de Postfix y sobre los alias en el CÓMO de reescritura de direcciones de Postfix .

Sam Hanes
fuente
Por lo tanto, la interfaz PostfixAdmin tiene un error , porque la interfaz ( edit.php?table=aliasdomain) no le dice al usuario que, de hecho, no se producirá ningún alias al marcarla como habilitada.
Peter Krauss
2
No diría que es un error exactamente, ya que de hecho configura un dominio de alias virtual. Por el contrario, sospecho que PostfixAdmin espera que usted sepa qué son los dominios de alias virtuales de Postfix, y que también necesita agregar alias reales para que hagan algo. Sin embargo, probablemente sería mejor si te dijera eso.
Sam Hanes
1

@Josh M.

No tengo idea si esta es la forma correcta y / o una buena práctica, pero estoy usando algo como esto:

virtual_alias_maps = regexp:/etc/postfix/domain_rewriting pgsql:/etc/postfix/pgsql/     virtual_alias_maps.cf

$ cat /etc/postfix/domain_rewriting 
/^(.*)@domain1.com$/     ${1}@domain2.com
Maximilian Kaul
fuente
1
Si bien no es exactamente incorrecto (hará lo que espera), usar una tabla de expresiones regulares es menos eficiente que usar una tabla hash con la @domain1.com @domain2.comsintaxis que detallé en mi respuesta.
Sam Hanes
1

Esta es mi versión corta de la respuesta de @ sam-hanes (que funcionó para mí)

En su virtual_alias_maps agregue:

@from.domain <tab> @to.domain

En la línea de comando hacer:

 postmap /path/to/yourvirtualalismapsfile

En su archivo main.cf agregue:

virtual_alias_domains : from.domain

virtual_alias_domains le dice a postfix que todas las direcciones de buzones en forma de buzó[email protected] son todos alias.

ychaouche
fuente