Manuale di FreeBSD
Indietro | Capitolo 26 Posta Elettronica | Avanti

# 26.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

## 26.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 26-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.

## 26.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 26-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.

## 26.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.

## 26.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.

## 26.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 26-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`.

Indietro | Partenza | Avanti
Utilizzo della Posta Elettronica | Risali | Sostituzione del proprio Mail Transfer Agent

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>.