postfix - come reindirizzare tutte le e-mail a un utente, ad es. *@example.com → user@example.com


27

Sto usando Postfix per la mia email. So di poter usare il comando / etc / alias e newalias per reindirizzare determinate e-mail, ad esempio posso reindirizzare root@example.com a user@example.com inserendo il root: usermio / etc / alias e quindi eseguendo newaliases. Tuttavia, vorrei fare l'equivalente di *: user, in modo che tutte le e-mail a example.com vengano inviate a user@example.com.

Come faccio a fare questo?

Risposte:


19

luser_relay = user@example.comnel tuo main.cfè quello che vuoi.

Per disabilitare il controllo degli utenti e accettare tutte le e-mail è necessario aggiungere l' local_recipient_maps =opzione. Documentazione


1
L'ho aggiunto a main.cf e ho riavviato postfix. Ho ricevuto il seguente errore in /var/log/main.info: <pre> 550 5.1.1 <myrandom@example.org>: indirizzo del destinatario rifiutato: utente sconosciuto nella tabella dei destinatari locale; da = <me@gmail.com> a = <myrandom@example.org> </pre>
Rory,

Quindi example.org non è nell'elenco dei domini dei destinatari locali o qualcos'altro non è stato configurato correttamente.
womble

7
L'ho fatto funzionare. Oltre all'opzione luser_relay che hai citato, devi anche aggiungere l'opzione "local_recipient_maps =". Questa pagina di documentazione postfix spiega che: postfix.org/postconf.5.html#luser_relay
Rory,

Questo metodo conserva l'indirizzo e-mail? (le mappe virtuali lo riscrivono e l'originale A: l'indirizzo è perso.)
user14645

1
Le domande @Sverre sono per domande, non commenti su risposte di sette anni a domande tangenzialmente correlate.
Womble

17

Quello che stai cercando è una tabella di alias virtuale e può essere fatto usando il seguente ...

Per prima cosa devi modificare, o creare se non esiste già, il file / etc / postfix / virtual .

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

Dopo che questo è stato salvato, dovrai eseguirlo postmap /etc/postfix/virtualper generare l'indice /etc/postfix/virtual.db indicizzato .

Dovrai quindi modificare il file /etc/postfix/main.cf e assicurarti di avere la seguente riga senza commento:

virtual_alias_maps = hash:/etc/postfix/virtual

Ciò consentirà effettivamente a postfix di conoscere la tabella di alias virtuale e di utilizzarla.

Il problema con l'utilizzo luser_relaydell'opzione, come altri hanno già detto, è che questo viene trattato come utente delle ultime località per indirizzi sconosciuti dall'agente di consegna locale. Se postfix gestisce solo la posta per un dominio, questo può essere utilizzato per questo, ma può mascherare altri errori di configurazione e probabilmente causerà risultati imprevisti se viene gestito più di un dominio.

L'unico avvertimento che mi sento obbligato a menzionare è che creando un alias jolly di questa natura si sta aprendo il proprio sistema di posta per accettare messaggi per indirizzi che non esistono e correre il rischio che la cassetta postale si riempia rapidamente di spam per inesistenti caselle di posta.


8

In realtà è abbastanza semplice. Tutto quello che devi fare è inserire qualcosa di simile nel tuo main.cffile:

virtual_alias_maps = regexp:/etc/postfix/virtual_alias

La regexpparte fa il trucco. Inoltre, /etc/postfix/virtual_aliasinserisci qualcosa del genere:

/^test/ you@yourdomain.com

In questo esempio dovresti ricevere tutta la posta con destinazione che inizia con 'test'. Non dimenticare di postmap / etc / postfix / virtual_alias e ricaricare postfix.


6

Per combinare una risposta / commento sopra che ha funzionato più facilmente per me (ho un dominio principale):
Aggiungi quanto segue a /etc/postfix/main.cf:

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

( local_recipient_maps =non ha alcun valore impostato)

Uso un account Linux utente locale e aggiungo anche lo stesso utente a / etc / aliases in modo che l'utente riceva tutta la posta su root, postmaster, ecc.

Puoi anche combinare questo stesso indirizzo nel tuo virtual_alias_mapse puntare qualsiasi catchalls di dominio virtuale sullo stesso account principale.

Per ulteriori informazioni, consultare luser_relay .


3

Se si desidera utilizzare un indirizzo generico per miodominio, è possibile utilizzare in /etc/aliasescombinazione con una regex come segue:

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

In /etc/postfix/catch-all-local.regexpaggiunta
!/^owner-/ your-catch-all-user

Questo dovrebbe fare il trucco. Ha funzionato per me e funziona con virtual_alias_maps impostato in parallelo.


0

In Postfix esiste un tipo di tabella di ricerca statica meno noto , che può essere utilizzato esattamente per questo scopo:

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

Se user@example.com non è locale per questo sistema, probabilmente vorrai anche eliminare tutti i messaggi di rimbalzo sostituendo le righe che terminano bouncecon discardin master.cfper evitare i loop di posta.


-4

Odio essere un guastafeste, ma il tuo problema è che stai usando Postfix. Postfix rende proprio questo esercizio molto difficile. Lo so: ho dovuto farlo alcuni anni fa e ci sono voluti giorni e giorni per farlo bene. L' luseropzione è quella giusta, ma ci sono anche altre cose da fare. (E anche il nome dell'opzione mostra che gli autori di Postfix non volevano davvero supportarlo.)

Consiglio di passare al corriere. Courier supporta questo metodo "catch-all" in un modo molto più sensato a causa del modo in cui estende il suo attuale sistema alias.


1
Postfix non lo rende affatto difficile. Gli alias virtuali sono il modo standard di fare catchalls in Postfix e sono molto facili. Detto questo, su qualsiasi cosa tranne un server di posta giocattolo per il tuo dominio personale, i catchall sono una pessima idea.
Rob Chanter,
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.