22.3 Configurazione di sendmail

Contributo di Christopher Shumway.

sendmail(8) è il Mail Transfer Agent (MTA) di default su FreeBSD. Il compito di sendmail è di accettare posta dai Mail User Agent (MUA), e consegnarla al server di posta appropriato come definito nel suo file di configurazione. Inoltre sendmail può accettare connessioni via rete e consegnare i messaggi a caselle di posta locali o ad un altro programma.

sendmail utilizza i seguenti file di configurazione:

File Funzione
/etc/mail/access File database di accesso di sendmail
/etc/mail/aliases Alias delle caselle di posta
/etc/mail/local-host-names Lista di host per i quali sendmail accetta posta
/etc/mail/mailer.conf File di configurazione del programma di posta
/etc/mail/mailertable Tabella di consegna del programma di posta
/etc/mail/sendmail.cf File di configurazione principale di sendmail
/etc/mail/virtusertable Tabelle degli utenti e dei domini virtuali

22.3.1 /etc/mail/access

Il database di accesso definisce quali host o indirizzi IP hanno accesso al server di posta locale e quale tipo di accesso hanno. Gli host possono essere catalogati come OK, REJECT, RELAY o possono semplicemente essere passati alla procedura di gestione degli errori di sendmail con un preciso errore. Gli host che sono definiti OK, che è il valore di default, possono spedire posta a questo host sempre che la destinazione finale della posta sia la macchina locale. Gli host che sono definiti REJECT vengono rifiutati per qualsiasi connessione di posta. Gli host che hanno l'opzione RELAY per i loro nomi host possono utilizzare questo server per spedire posta verso qualsiasi destinazione.

Esempio 22-1. Configurazione del Database di Accesso di sendmail

cyberspammer.com                550 Non accettiamo posta dagli spammer
FREE.STEALTH.MAILER@            550 Non accettiamo posta dagli spammer
altra.sorgente.di.spam          REJECT
okay.cyberspammer.com           OK
128.32                          RELAY

In questo esempio abbiamo cinque elementi. Gli host mittenti che corrispondono a quelli posti sul lato sinistro della tabella sono condizionati dall'azione posta sul lato destro della tabella. I primi due esempi passano un codice di errore alla procedura di sendmail che gestisce gli errori. Il messaggio viene restituito all'host remoto quando viene trovata una corrispondenza sul lato sinistro della tabella. Il terzo esempio rifiuta la posta da un host specifico su Internet, altra.sorgente.di.spam. Il quarto esempio accetta connessioni di posta da un host, okay.cyberspammer.com, che è più preciso rispetto a cyberspammer.com della prima linea. Le corrispondenze più precise sovrascrivono quelle meno precise. L'ultimo esempio permette il relay della posta elettronica agli host che hanno un indirizzo IP che inizia con 128.32. Questi host possono spedire messaggi destinati ad altri server di posta attraverso questo server.

Quando modifichi questo file, devi eseguire make in /etc/mail/ per aggiornare il database.

22.3.2 /etc/mail/aliases

Il database degli alias contiene una lista di caselle di posta virtuali che sono espanse in altri utenti, file, programmi o in altri alias. Seguono alcuni esempi che possono essere usati in /etc/mail/aliases:

Esempio 22-2. Alias di Posta

root: utentelocale
ftp-bugs: joe,eric,paul
bit.bucket: /dev/null
procmail: "|/usr/local/bin/procmail"

Il formato del file è semplice: il nome della casella di posta che si trova a sinistra dei due punti viene espanso negli elementi posti a destra dei due punti. Il primo esempio semplicemente espande la casella di posta root nella casella di posta utentelocale, che è di nuovo ricercata nel database degli alias. Se non viene trovata, allora il messaggio viene consegnato all'utente locale utentelocale. L'esempio successivo mostra una mailing list. La posta indirizzata alla casella di posta ftp-bugs viene espansa nelle tre caselle di posta locali joe, eric, e paul. Nota che una casella di posta remota può essere specificata come user@example.com. Il terzo esempio mostra come scrivere la posta su un file, in questo caso /dev/null. L'ultimo esempio mostra come mandare la posta a un programma, in questo caso il messaggio di posta diventa lo standard input di /usr/local/bin/procmail tramite una pipe UNIX®.

Quando modifichi questo file, devi eseguire make in /etc/mail/ per aggiornare il database.

22.3.3 /etc/mail/local-host-names

Questo file è una lista di nomi host che sendmail(8) accetta come se fossero l'host locale. Metti i domini o gli host per i quali sendmail deve ricevere posta. Per esempio, se questo server di posta dovesse essere in grado di accettare posta per il dominio example.com e per l'host mail.example.com, il suo local-host-names potrebbe assomigliare a questo:

example.com
mail.example.com

Quando modifichi questo file, devi riavviare sendmail(8) per attivare i cambiamenti.

22.3.4 /etc/mail/sendmail.cf

Il file di configurazione principale di sendmail, sendmail.cf controlla l'intero comportamento di sendmail, inclusa ogni cosa, dalla rielaborazione degli indirizzi e-mail alla stampa del messaggio di rifiuto per i server di posta remoti. Naturalmente, avendo svariati compiti, questo file di configurazione è alquanto complesso e i suoi dettagli vanno oltre lo scopo di questa sezione. Fortunatamente, questo file necessita raramente di essere modificato per server di posta standard.

Il file di configurazione principale di sendmail può essere costruito a partire da macro m4(1) che definiscono le caratteristiche e il comportamento di sendmail. Guarda /usr/src/contrib/sendmail/cf/README per ulteriori dettagli.

Quando modifichi questo file, devi riavviare sendmail(8) per attivare i cambiamenti.

22.3.5 /etc/mail/virtusertable

Il file virtusertable mappa indirizzi di posta relativi a domini e caselle di posta virtuali in caselle di posta reali. Queste caselle di posta possono essere locali, remote, alias definiti in /etc/mail/aliases o file.

Esempio 22-3. Esempio di Mappatura per la Posta di un Dominio Virtuale

root@example.com                root
postmaster@example.com          postmaster@noc.example.net
@example.com                    joe

Nell'esempio precedente, abbiamo una mappatura per il dominio example.com. Questo file viene processato dall'alto verso il basso fermandosi alla prima corrispondenza trovata. Il primo elemento mappa root@example.com nella casella di posta locale root. Il secondo elemento mappa postmaster@example.com nella casella di posta postmaster sull'host noc.example.net. Infine, se non sono state trovate corrispondenze per example.com fino a questo punto, verrà verificata l'ultima mappatura, che corrisponde a tutti gli altri messaggi di posta indirizzati a qualche utente di example.com. Questo verrà mappato nella casella di posta locale joe.

Questo, ed altri documenti, possono essere scaricati da ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.

Per domande su FreeBSD, leggi la documentazione prima di contattare <questions@FreeBSD.org>.
Per domande su questa documentazione, invia una e-mail a <doc@FreeBSD.org>.