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