Ssmtp (1) è un sistema molto semplice per l'invio della posta elettronica a un servente SMTP. Lo scopo di questo programma è quello di sostituire l'MTA tipico, quando non è necessaria la gestione della consegna locale (MDA) e si può fare affidamento continuamente su un MTA esterno, contattato attraverso il protocollo SMTP.
Per comprendere il funzionamento di Ssmtp è necessario partire da un esempio, come si vede nella figura u81.1. Nell'elaboratore dinkel.brot.dg
è stato installato Ssmtp; l'elaboratore weizen.mehl.dg
offre un servente SMTP a cui dinkel.brot.dg
può accedere. Nell'elaboratore dinkel.brot.dg
sono registrati tre utenti: Tizio, Caio e Sempronio, ognuno dei quali riceve la propria posta elettronica presso una casella remota (come indicato nella figura stessa); inoltre, è Tizio che svolge anche il ruolo di amministratore.
Ssmtp non è un demone e viene avviato solo quando serve. In quel momento, contatta il servente SMTP indicato nella sua configurazione e gli affida il messaggio. Pertanto, il servente in questione deve essere sempre disponibile, ovvero deve essere sempre disponibile la comunicazione verso quell'elaboratore remoto. Da questo si comprende che Ssmtp non può essere usato in un elaboratore che si collega alla rete esterna solo saltuariamente.
In generale, i messaggi destinati all'elaboratore locale non si possono consegnare, ma anche se non si intende usare un programma come Mailx (mail) non bisogna dimenticare che in un sistema Unix standard vengono generati automaticamente dei messaggi che spesso sono diretti all'amministratore, per aggiornarlo sullo svolgimento di operazioni periodiche o per avvisarlo di qualunque tipo di problema. In altri termini, un sistema Unix non può fare a meno di un programma che consenta almeno l'invio dei messaggi di posta elettronica. Ssmtp è in grado di ridirigere questi messaggi a un indirizzo di posta elettronica, che però deve esterno all'elaboratore locale.
Quando un utente invia un messaggio, è necessario che Ssmtp sia in grado di modificare il campo From:, in modo che appaia un indirizzo di posta elettronica valido; diversamente, se apparisse l'indirizzo dell'elaboratore locale (dinkel.brot.dg
nell'esempio), non potrebbe ricevere alcuna risposta dal suo interlocutore.
Ssmtp utilizza solo due file per la configurazione. Si tratta di /etc/ssmtp/ssmtp.conf
e di /etc/ssmtp/revaliases
. È sufficiente mostrare degli esempi compatibili con quanto visto in figura u81.1 per comprendere l'uso delle direttive di questi file. Si comincia con /etc/ssmtp/ssmtp.conf
, dove i commenti relativi alle direttive non utilizzate sono rimasti in inglese:
|
Come si vede, i messaggi diretti a root@localhost
vengono modificati e inviati a tizio@bla.dg
; l'invio dei messaggi avviene facendo uso del servizio offerto da weizen.mehl.dg
; il nome dell'elaboratore locale è dinkel.brot.dg
.
Quanto visto fino a questo punto basta per inviare i messaggi, ma non è sufficiente a modificare il campo From:, perché si tratta di un compito affidato alla configurazione con il file /etc/ssmtp/revaliases
:
|
Si può osservare che al nominativo-utente si abbina l'indirizzo di posta elettronica appropriato, compreso il caso di root.
La ricezione della posta elettronica è un'attività al di fuori della competenza di Ssmtp, pertanto la si deve prelevare attraverso il protocollo POP3 o un altro simile, ma questo direttamente attraverso il programma utilizzato per la lettura della stessa. In altri termini, non si può usare Fetchmail (39.11.3) e nemmeno altri programmi che rinviano i messaggi prelevati nel sistema di recapito locale.
L'utilizzo di Ssmtp si giustifica solo quando si vuole evitare di dovere gestire un servente SMTP standard, con tutti i problemi di sicurezza che ciò comporta. Inoltre, si evita di avere in funzione continuamente il programma, riducendo così le risorse elaborative richieste.
«a2» 2013.11.11 --- Copyright © Daniele Giacomini -- appunti2@gmail.com http://informaticalibera.net