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