Configurare Sendmail con sendmail.mc

La configurazione di Sendmail tramite il file sendmail.mc risulta particolarmente comoda e semplice anche se bisogna sempre ricordarsi di processare questo file con il preprocessore di macro m4 per ottenere il file sendmail.cf effettivamente usato dal programma.
Per farlo basta una riga tipo:
m4 sendmail.mc > sendmail.cf
Le macro che permettono di convertire un file sendmail.mc nel file sendmail.cf sono generalmente distribuite indipendentemente dal pacchetto di Sendmail per permettere una gestione più agevole degli aggiornamenti.
Su Linux tipicamente sono presenti nel pacchetto sendmail-cf.*.rpm

Le caratteristiche sintattiche di base di un file .mc:
- Le macro sono definite con una riga tipo: define(macro,valore)
- Si possono utilizzare degli apici (il primo è inverso, il secondo dritto) per impedire che il preprocessori interpreti i contenuti di un argomento: define(`macro',`valore')
- Il preprocessore m4 analizza il testo in input come un flusso di caratteri, per evitare che venga interpretata una riga si usano i caratteri dnl (Delete through New Line) che possono essere usati sia come i # per commentare una riga:
dnl define(`macro',`valore') (la riga di configurazione non viene considerata)
sia a termine riga per evitare che venga generato uno spazio vuoto nel file di configurazione:
define(`macro',`valore')dnl (la riga di configurazione viene considerata e viene ignorato tutto quello che è scritto dopo dnl fino a fine riga).
Ricordarsi che gli argomenti delle macro sono generalmente messi fra apici (prima inverso: ` e poi dritto: ').

Per costruire un file di configurazione m4 minimo sono necessarie le seguenti direttive:

OSTYPE() - OBBLIGATORIO. Esempio: OSTYPE(`linux')
Definisce il sistema operativo su cui gira Sendmail. Un elenco dei SO supportati può essere visibile in /usr/share/sendmail-cf/ostype o nella analoga directory in cui sono contenuti le macro di configurazione di sendmail.

MAILER() - OBBLIGATORIO. Esempio: MAILER(`smtp')
Definisce l'egente di consegna di posta utilizzato. Sendmail supporta non solo il protocolli SMTP, ma anche metodi più antichi (tipo UUCP) o diversi. In genere su un server di posta normale è definito MAILER(`smtp') per la gestione della posta in rete, e  MAILER(`procmail') o MAILER(`local') per il delivery della posta locale.

DOMAIN() - RACCOMANDATO. Esempio: DOMAIN(`generic')
Imposta una macro specifica per il dominio indicato. Il generic si riferisce ad una configurazione standard, buona per molti usi.

FEATURE() - RACCOMANDATO. Esempio: FEATURE(`use_cw_file')
Molte funzionalità utili di Sendmail sono configurabili con specifiche features, che vanno dichiarate nel file .mc.
Fra queste segnaliamo:

FEATURE(`always_add_domain') - Aggiunge sempre il nome di dominio agli indirizzi presenti negli header dei messaggi, anche se si riferiscono ad utenti locali, per cui non si è esplicitato un dominio.

FEATURE(`domaintable') - Attiva il supporto di un file domaintable in cui sono indicati (a sinistra in ogni riga) nomi di dominio la cui posta la si vuole far convergere nel proprio dominio locale (a destra in ogni riga). Questa feature può avere come ulteriore argomento un path alternativo e un alternativo tipo di DB di gestione del file (di default si utilizza un hash db standard): FEATURE(`domaintable',`hash -o /etc/mail/domaintable.db').
Una simile riga su sendmail.mc produrrà su sendmail.cf la seguente configurazione:
Kdomaintable hash -o /etc/mail/domaintable.db
R$* < @ $+ > $*                 $: $1 < @ $(domaintable $2 $) > $3


FEATURE(`genericstable') - Attiva il supporto del file genericstable in cui è possibile specificare come cambiare l'indirizzo del mittente (a sinistra) con un indirizzo alternativo (a destra).
Ha una logica simile a domaintable: il file di configurazione è un normale testo ASCII che viene convertito in un .db che di fatto è quello utilizzato da Sendmail. Anche in questo caso è possibile indicare path del file e database utilizzato: FEATURE(`genericstable',`hash -o /etc/mail/genericstable.db')

FEATURE(`local_procmail') - Utilizza procmail per il delivery della mail locale.

FEATURE(`mailertable') - Permette di utilizzare un file mailertable per gestire metodi e rotte di delivery della posta custom. In /etc/mail/mailertable (default sui Sendmail recenti), che funziona come gli altri file da convertire in .db, va scritto, in ogni riga: dominio a cui è destinata la posta (es: dominio.com) - metodo di delivery e dominio o indirizzo email di destinazione (es: smtp:[email protected]).

Privacy Policy