Postfix: che cosa sono esattamente i domini alias?


12

Pensavo di aver capito "Domini alias" in quanto è semplicemente un alias per un altro dominio! Quindi, quando imposto una cassetta postale come "info@main.com" e aggiungo "alias.com" come alias di dominio per "main.com", l'indirizzo "info@alias.com" funzionerebbe anche ... Ma no !

Quindi, ho aggiunto questi domini:

  • main.com
  • alias.com

Ho creato questa cassetta postale:

  • info@main.com

Quindi ho mappato questi domini alias:

  • alias.com => main.com

E poi quando invio una mail a info@alias.com ricevo questo errore:

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

Non voglio creare un alias per ogni dominio, poiché ne ho alcuni. Inoltre non voglio usare un carattere jolly (come info @ *) perché ci sono anche altri domini di cui non sono aliasmain.com

Quindi ... cosa sono esattamente?


Mi aspettavo lo stesso e ancora non capisco perché non è così.
Josh M.,

Risposte:


4

La spiegazione è nella documentazione: http://www.postfix.org/VIRTUAL_README.html#virtual_alias

Volete "cassette postali alias" aka virtual_mailbox_alias e virtual_mailbox_maps ma parliamo di "domini alias": http://www.postfix.org/ADDRESS_CLASS_README.html#virtual_alias_class


3
Non riesco a dare un senso ai documenti - come si fa hai domain1.comalias qualsiasi cassetta postale <mailbox>@domain2.com?
Josh M.,

2
@JoshM. È possibile utilizzare una tabella hash virtual_alias_mapscon una voce del modulo @domain1.com @domain2.com. Vedi la mia risposta per i dettagli.
Sam Hanes,

12

L'aggiunta alias.coma virtual_alias_domainsè il primo passo corretto, ma ciò indica a Postfix che si desidera utilizzare quel dominio per gli alias. Non dice quali dovrebbero essere gli alias. Per questo, è necessario utilizzare una mappa alias virtuale.

Innanzitutto, aggiungi qualcosa del genere a main.cf:

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

L'aggiunta virtual_alias_mapsti dà un file ( /etc/postfix/virtual) che viene usato come una mappa alias virtuale. Ma cosa metti in quel file? Secondo la manpage virtuale (5) :

Il formato di input per il comando postmap (1) è il seguente:

  pattern address, address, ...

Quando il modello corrisponde a un indirizzo di posta, sostituirlo con l'indirizzo corrispondente.

e

Con ricerche da file indicizzati come DB o DBM o da tabelle in rete come NIS, LDAP o SQL, ogni query utente @ dominio produce una sequenza di modelli di query come descritto di seguito. Ogni modello di query viene inviato a ciascuna tabella di ricerca specificata prima di provare il modello di query successivo, fino a quando non viene trovata una corrispondenza.

...

@domain address, address, ...

Reindirizzare la posta per gli altri utenti nel dominio all'indirizzo.

e

Il risultato della ricerca è soggetto alla riscrittura degli indirizzi: quando il risultato ha il modulo @otherdomain, il risultato diventa lo stesso utente in otherdomain. Funziona solo per il primo indirizzo in un risultato di ricerca multi-indirizzo.

Pertanto, inserendo questo /etc/postfix/virtualotterrai l'alias di dominio completo che desideri:

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

Quindi, poiché quel file è una tabella hash, è necessario eseguire postmap( spiegazione , manpage ):

postmap /etc/postfix/virtual

Puoi trovare maggiori informazioni sui domini virtuali nel Postfix Virtual Domain HOWTO e sugli alias nel Postfix Address Rewriting HOWTO .


Pertanto, l'interfaccia PostfixAdmin ha un bug , poiché l'interfaccia ( edit.php?table=aliasdomain) non riesce a dire all'utente che in realtà non si verificherà alcun alias quando lo contrassegna come abilitato.
Peter Krauss,

2
Non direi che è un bug, esattamente, poiché in realtà configura un dominio alias virtuale. Piuttosto, sospetto che PostfixAdmin si aspetti che tu sappia quali sono i domini di alias virtuali Postfix e che devi anche aggiungere alias effettivi per fare in modo che facciano qualsiasi cosa. Probabilmente sarebbe meglio se te lo dicesse, però.
Sam Hanes,

1

@Josh M.

Non ho idea se questa sia la strada giusta e / o le buone pratiche, ma sto usando qualcosa del genere:

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

1
Sebbene non sia esattamente errato (farà ciò che ti aspetti), l'uso di una tabella regex è meno efficiente rispetto all'utilizzo di una tabella hash con la @domain1.com @domain2.comsintassi che ho dettagliato nella mia risposta.
Sam Hanes,

1

Questa è la mia versione breve della risposta di @ sam-hanes (che ha funzionato per me)

Nelle tue virtual_alias_maps aggiungi:

@from.domain <tab> @to.domain

Nella riga di comando fai:

 postmap /path/to/yourvirtualalismapsfile

Nel tuo file main.cf aggiungi:

virtual_alias_domains : from.domain

virtual_alias_domains dice a postfix che tutti gli indirizzi delle cassette postali che si presentano sotto forma di mailbox@from.domain sono tutti alias.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.