Postfix: Relay Selettivo in base al Dominio
A volte capita che il nostro server riesca a inviare email ovunque, tranne che verso alcuni domini specifici che applicano filtri anti-spam molto severi. In questi casi, la soluzione migliore è configurare un instradamento selettivo (Transport Map): le email “normali” escono direttamente, mentre quelle dirette ai domini problematici passano per un relay affidabile.
1. Configurazione della Transport Map
Dobbiamo dire a Postfix di consultare una tabella di instradamento. Apri /etc/postfix/main.cf e aggiungi:
# Abilitiamo la tabella dei trasporti
transport_maps = hash:/etc/postfix/transport
# Opzionale: Debug per monitorare le connessioni
debug_peer_list = 192.168.1.0/24, gmail.com
debug_peer_level = 2
2. Creazione della Tabella di Instradamento
Crea il file /etc/postfix/transport dove specificherai quali domini devono usare un relay esterno:
# Destinazione Metodo:ServerRelay
test.it smtp:mail.miodominio.it
test.com smtp:mail.miodominio.it
gmail.com smtp:mail.miodominio.it
In questo esempio, tutte le email verso gmail.com verranno inoltrate a mail.miodominio.it invece di essere inviate direttamente.
3. Attivazione delle Modifiche
Come per tutte le tabelle hash di Postfix, dobbiamo indicizzare il file e riavviare il servizio:
# Generiamo il database transport.db
sudo postmap /etc/postfix/transport
# Riavvio per applicare le modifiche al main.cf
sudo systemctl restart postfix
4. Monitoraggio dei Risultati
Puoi verificare che l’instradamento stia funzionando correttamente controllando il log della posta:
tail -f /var/log/mail.log | grep "postfix/smtp"
Se hai attivato il debug, troverai righe simili a questa che confermano l’incremento del livello di log per i peer selezionati:
dict_lookup: debug_peer_level = 2