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