[inizio] [indice generale] [precedente] [successivo] [indice analitico] [contributi]


104. Messaggi di posta elettronica e protocollo SMTP

L'invio di messaggi di posta elettronica (email) si basa su un MTA (Mail Transfer Agent) locale che, quando riceve una richiesta di invio di un messaggio, si occupa di mettersi in contatto con un suo collega presso l'indirizzo di destinazione, o se necessario in una destinazione intermedia, che si prenderà cura di consegnare il messaggio o di reinoltrarlo. Tutto quanto sembra molto semplice a dirsi, in realtà la configurazione di un MTA potrebbe essere molto complessa.

Spesso, in presenza di una rete locale, il funzionamento corretto dell'MTA richiede la predisposizione di un servizio di risoluzione dei nomi locale. A tale proposito conviene consultare i capitoli 93 e 94.

L'invio di messaggi di posta elettronica avviene solitamente attraverso l'uso di un programma adatto alla loro composizione, che poi si mette in comunicazione con l'MTA per l'inoltro del messaggio. Più precisamente, un messaggio inviato a un utente dell'elaboratore locale non richiede alcun MTA, mentre l'invio a un altro elaboratore richiede almeno la presenza di un MTA presso l'indirizzo di destinazione.

Storicamente, l'MTA più diffuso nei sistemi Unix è Sendmail.

104.1 Servizio di rete e servizio di consegna locale

La posta elettronica non è semplicemente un servizio di rete che si attua attraverso un protocollo (SMTP). Il servizio di rete, permette il trasferimento dei messaggi, ma l'MTA ha anche il compito di recapitarli ai destinatari, in forma di file.

In questo senso, il meccanismo può sembrare un po' confuso all'inizio, e in effetti si tratta di un sistema piuttosto complicato. In un sistema composto da un elaboratore isolato, anche se provvisto di terminali più o meno decentrati, non c'è alcun bisogno di fare viaggiare messaggi attraverso una rete, è sufficiente che questi vengano semplicemente messi a disposizione dell'utente destinatario (in un file contenuto nella sua directory personale, o in una directory pubblica, in cui il file in questione possa essere accessibile solo a quell'utente particolare). In tal caso, chi si occupa di attuare questo sistema è un MDA, ovvero Mail Delivery Agent.

Quando invece si deve inviare un messaggio attraverso la rete, perché l'indirizzo del destinatario si trova in un nodo differente, si utilizza il protocollo SMTP, e presso la destinazione deve essere presente un servente SMTP in ascolto. Questo servente si prenderà carico di fare recapitare la posta elettronica (presumibilmente presso il proprio sistema locale). Quindi, lo scopo del servente SMTP è quello di recapitare i messaggi.

La trasmissione del messaggio, che richiede la connessione con il servente remoto della destinazione, non fa capo ad alcun servizio di rete nell'ambito locale. Questa connessione potrebbe essere instaurata direttamente dal programma che si utilizza per scrivere il messaggio da trasmettere, oppure, come succede di solito, da un altro programma specifico, che in più si preoccupa di ritentare l'invio del messaggio se per qualche motivo le cose non funzionano subito, e di rinviarlo all'origine se non c'è modo di recapitarlo.

L'MTA ha generalmente questi tre ruoli fondamentali: l'attivazione del servizio SMTP, per la ricezione di messaggi dall'esterno; la gestione della trasmissione di questi, assieme a una coda per ciò che non può essere trasmesso immediatamente; la consegna locale dei messaggi ricevuti attraverso il protocollo SMTP oppure attraverso lo stesso sistema locale. Quindi, in generale, un MTA integra anche le funzioni di un MDA.

104.2 Uso della posta elettronica

La posta elettronica, o email, è un modo di comunicare messaggi che richiede la conoscenza di alcune convenzioni. Ciò, sia per evitare malintesi, che per eliminare le perdite di tempo.

Un messaggio di posta elettronica è formato fondamentalmente da una «busta» e dal suo contenuto. La busta è rappresentata da tutte le informazioni necessarie a recapitare il messaggio, mentre il contenuto è composto generalmente da un testo ASCII puro e semplice. Tutte le volte che il testo è composto in modo diverso, si aggiungono dei requisiti nei programmi da utilizzare per la sua lettura; in pratica, si rischia di creare un problema in più a un ipotetico mittente del nostro messaggio.

In generale, un messaggio di posta elettronica può contenere uno o più allegati, conosciuti frequentemente come attachment. L'allegato permette di incorporare in un messaggio un file che poi, attraverso strumenti opportuni, può essere estrapolato correttamente come era l'originale. Ciò che si deve evitare di fare in generale è l'invio del messaggio come un allegato. Questo, purtroppo, capita frequentemente quando si usano programmi per la composizione di messaggi di posta elettronica che permettono di introdurre elementi di formattazione del testo (Rich Text). Quando si usano programmi grafici di composizione per i messaggi di posta elettronica è bene controllare la configurazione per eliminare questa formattazione, che generalmente è predefinita.

99.jpg

Figura 104.1: L'insidia dei programmi MUA grafici che utilizzano la composizione dei messaggi in formato HTML in modo predefinito.

Le varie estensioni al codice ASCII hanno portato alla definizione di un gran numero di codifiche differenti. Spesso è sufficiente configurare il proprio programma di composizione dei messaggi di posta elettronica in modo da utilizzare la codifica ISO 8859-1, per poter scrivere correttamente con le lingue di buona parte dei paesi europei (inglese inclusa). Tuttavia, anche la scelta di una codifica come questa, che richiede l'utilizzo di 8 bit invece dei 7 bit tradizionali dell'ASCII, può costituire un problema per qualcuno. In questo senso, quando si scrive in italiano, è «cortese» utilizzare gli apostrofi alla fine delle vocali che avrebbero dovuto essere accentate.

104.2.1 Elementi di intestazione

Un messaggio di posta elettronica si compone inizialmente di una serie di indicazioni, tra cui le più importanti servono a recapitarlo al destinatario. L'uso corretto di questi elementi di intestazione è importante, non solo perché il messaggio raggiunga il destinatario o i destinatari, ma anche per chiarire loro il contesto del messaggio e le persone coinvolte.

104.2.2 Risposta, prosecuzione e riservatezza

La risposta a un messaggio viene inviata normalmente al mittente (`From:'), a tutti i destinatari normali (`To:') e a tutti quelli cui è stato inviato il messaggio per conoscenza (`Cc:'). Questa operazione viene fatta solitamente in modo automatico dal programma utilizzato per leggere e comporre i messaggi: il Mail User Agent (MUA). È importante però fare attenzione sempre che ciò corrisponda alla propria volontà, o che le circostanze siano appropriate. Infatti, se sono coinvolte diverse persone in una corrispondenza, è probabile che si giunga a un punto in cui non abbia più significato continuare a «importunarle» quando la catena di risposte è degenerata in un contesto differente.

I programmi MUA comuni aggiungono la sigla `Re:' davanti all'oggetto, a meno che questo non inizi già in questo modo, quando si risponde a un messaggio precedente. Il problema sta nel fatto che non sempre viene rispettata questa convenzione, per cui se ne trovano altri che aggiungono qualcosa di diverso, come `R:', e se la catena di risposte prosegue si rischia di arrivare ad avere un oggetto formato da una serie di `Re: R: Re: R:'...

Quando il messaggio a cui si risponde contiene l'indicazione del campo `Reply-To:', si pone un problema in più: la scelta corretta del destinatario. Infatti, la risposta va inviata all'indirizzo `Reply-To:' solo se perfettamente conforme al contesto. Si è già accennato al fatto che questo campo viene aggiunto dai programmi di gestione delle liste di posta elettronica. In questa situazione è molto diverso inviare una risposta alla lista o soltanto al mittente originario del messaggio.

Quando si vuole rinviare a un altro indirizzo (forward in inglese), si dice che questo viene fatto proseguire (così come avviene nella posta normale quando l'indirizzo di destinazione non è più valido per qualche motivo). Per farlo si incorpora il messaggio originale con alcune informazioni sul mittente e sul destinatario originale, permettendo di aggiungere qualche commento aggiuntivo.

Quando si riceve un messaggio, così come accade nella corrispondenza normale, occorre un po' di attenzione se si pensa di divulgarne il contenuto ad altri. Evidentemente dipende dalle circostanze; in caso di dubbio occorre almeno chiedere il consenso della persona che le ha scritte.

104.3 Sendmail

Come accennato, Sendmail è l'MTA più diffuso nei sistemi Unix, e anche nelle distribuzioni GNU/Linux viene utilizzato in modo predefinito. Il pregio di Sendmail è la sua estrema configurabilità. Il suo difetto è lo stesso pregio: l'estrema configurabilità implica un'estrema complessità.

A seconda delle opzioni con cui viene avviato l'eseguibile `sendmail', si ottiene un demone in ascolto della porta SMTP (25), oppure si ottiene la trasmissione di un messaggio fornito attraverso lo standard input, oppure si hanno altre funzioni accessorie.

Solitamente, Sendmail viene distribuito già configurato in modo standard, sia per l'attivazione del servizio SMTP che per la gestione della trasmissione dei messaggi e della consegna locale; qui si vuole solo vedere quel poco che può valere la pena di modificare, anche per un principiante. Sendmail viene trattato con maggiore dettaglio nel capitolo 206.

104.3.1 # sendmail

sendmail [<opzioni>]

`sendmail' è l'MTA standard dei sistemi Unix. Viene usato fondamentalmente in due modi: per l'attivazione del servizio SMTP e per la trasmissione e la consegna locale dei messaggi.

Per l'attivazione del servizio SMTP, viene avviato normalmente come demone indipendente da `inetd', e questo si ottiene con l'aggiunta dell'opzione `-bd'. Naturalmente, si tratta solitamente di un'operazione che viene fatta dalla stessa procedura di inizializzazione del sistema.

Per l'invio di un messaggio, è sufficiente avviare `sendmail', fornendogli questo attraverso lo standard input, avendo cura di separare con una riga vuota l'intestazione dal testo (viene mostrato negli esempi).

Esempi

/usr/sbin/sendmail -bd

Quella che si vede potrebbe essere la riga di uno script che avvia `sendmail' perché questo funzioni come demone in ascolto della porta SMTP.

---------

cat | /usr/sbin/sendmail tizio@dinkel.brot.dg[Invio]

From: caio@roggen.brot.dg[Invio]

Subject: ciao ciao[Invio]

[Invio]

Ciao Tizio.[Invio]

Quanto tempo che non ci si sente![Invio]

[Ctrl+d]

Quello appena mostrato è l'esempio che mostra in che modo si può usare `sendmail', in qualità di MDA, per inviare un messaggio senza avere alcun programma accessorio. Evidentemente, ciò può essere particolarmente utile per realizzare uno script con qualche informazione definita in modo automatico.

Per questo tipo di utilizzo, è fondamentale la riga vuota (vuota e non solo bianca) prima del testo del messaggio.

104.3.2 Configurazione: /etc/sendmail.cf

La configurazione di Sendmail è a dir poco «terribile», e si attua attraverso il file `/etc/sendmail.cf'. Chi non è esperto è bene che lasci stare il file di configurazione che si ritrova, oppure che ne scelga uno tra un gruppo già pronto e ben descritto per i suoi effetti.

È chiaro che in questa situazione ci si deve fidare della propria distribuzione GNU/Linux, e di conseguenza occorre leggere la relativa documentazione che dovrebbe descrivere le scelte fatte nella configurazione di questo servizio.

Per modificare la configurazione di Sendmail, si evita generalmente di intervenire direttamente nel file `/etc/sendmail.cf', utilizzando dei linguaggi macro in grado di costruirne uno con meno fatica (ciò è descritto nel capitolo 206).

104.3.3 /etc/aliases

Attraverso il file `/etc/aliases' è possibile configurare una serie di alias per facilitare l'invio di messaggi di posta elettronica. Gli alias stabiliscono a chi, effettivamente, debbano essere recapitati i messaggi.

In generale, non è conveniente che l'utente `root' possa ricevere dei messaggi, per questo, un alias potrebbe rimandare la sua posta elettronica verso il recapito corrispondente all'utente comune riferito a quella stessa persona.

Inoltre, è importante che gli utenti di sistema (`bin', `daemon', ecc.) non possano ricevere messaggi: prima di tutto non esistono tali persone, e poi ciò potrebbe servire per sfruttare qualche carenza nel sistema di sicurezza dell'elaboratore locale.

Infine, è molto importante che vengano definiti degli alias usati comunemente per identificare il responsabile del servizio SMTP presso il nodo locale.

L'esempio seguente mostra il file `/etc/aliases' tipico, in cui si dichiarano gli alias del responsabile del servizio (`postmaster'), gli alias degli utenti di sistema, e infine, l'alias dell'utente `root'.

#
#	@(#)aliases	8.2 (Berkeley) 3/5/94
#
#  Aliases in this file will NOT be expanded in the header from
#  Mail, but WILL be visible over networks or from /bin/mail.
#
#	>>>>>>>>>>	The program "newaliases" must be run after
#	>> NOTE >>	this file is updated for any changes to
#	>>>>>>>>>>	show through to sendmail.
#

# Basic system aliases -- these MUST be present.
MAILER-DAEMON:	postmaster
postmaster:	root

# General redirections for pseudo accounts.
bin:		root
daemon:		root
games:		root
ingres:		root
nobody:		root
system:		root
toor:		root
uucp:		root

# Well-known aliases.
manager:	root
dumper:		root
operator:	root

# trap decode to catch security attacks
decode:		root

# Person who should get root's mail
#root:		marc

Nell'esempio si vede anche un alias che può apparire strano: `MAILER-DAEMON'. Si tratta di una consuetudine, e corrisponde sostanzialmente al responsabile del servizio di posta elettronica.

Questo file non può essere utilizzato da `sendmail' così com'è, deve essere prima tradotto nel file `/etc/aliases.db' attraverso il comando `newaliases'.

104.3.4 $ newaliases

newaliases

`newaliases' è un collegamento a `sendmail'. Quando `sendmail' viene avviato con questo nome, genera un nuovo file `/etc/aliases.db' a partire dal sorgente `/etc/aliases'.

Quindi, ogni volta che si modifica il file `/etc/alias', occorre avviare `newaliases'.

104.3.5 /var/spool/mqueue/*

Quando `sendmail' viene avviato per ottenere l'invio di un messaggio, questo utilizza la directory `/var/spool/mqueue/' per accodare ciò che non può essere trasmesso immediatamente.

Per sapere se un messaggio è stato inviato effettivamente, occorre controllare che questa directory sia vuota. Per questo, si può utilizzare il comando `mailq' che restituisce lo stato di questa directory.

104.3.6 $ mailq

mailq

`mailq' è un collegamento a `sendmail'. Quando `sendmail' viene avviato con questo nome, legge il contenuto di `/var/spool/mqueue/' ed elenca in breve i messaggi rimasti nella coda.

L'esempio seguente mostra i file di due messaggi che non sono stati recapitati per motivi diversi.

ls -l /var/spool/mqueue[Invio]

total 4
-rw-------   1 root     mail           16 Sep 12 21:01 dfVAA03244
-rw-------   1 root     mail           10 Sep 12 21:09 dfVAA03507
-rw-------   1 root     mail          507 Sep 12 21:02 qfVAA03244
-rw-------   1 root     mail          535 Sep 12 21:09 qfVAA03507

Con `mailq' si ottiene invece una visione più chiara, ma soprattutto accessibile anche all'utente comune. *1*

mailq[Invio]

		Mail Queue (2 requests)
--Q-ID-- --Size-- -Priority- ---Q-Time--- -----------Sender/Recipient-----------
VAA03244       16      30065 Sep 12 21:01 root
                 (Deferred: No route to host)
					  daniele@weizen.mehl.dg
VAA03507       10      30066 Sep 12 21:09 root
                 (Deferred: Connection refused by weizen.mehl.dg.)
					  root@weizen.mehl.dg

L'uso di `mailq' è molto importante per verificare che i messaggi siano stati inviati, specialmente quando si utilizza un collegamento su linea commutata: prima di interrompere la comunicazione, conviene verificare che non siano rimasti messaggi in coda. *2*

104.3.7 Rinvio: ~/.forward

Il file `~/.forward' può essere preparato da un utente (nella propria directory personale) per informare il sistema di consegna locale della posta elettronica (MDA) di fare proseguire (rinviare) i messaggi verso altri indirizzi. Il file si compone di una o più righe, ognuna contenente un indirizzo di posta elettronica alternativo; i messaggi giunti per l'utente in questione verranno fatti proseguire verso tutti gli utenti elencati in questo file.

daniele@dinkel.brot.dg

L'esempio mostra semplicemente che tutti messaggi di posta elettronica ricevuti dall'utente a cui appartiene la directory personale in cui si trova il file, devono essere rispediti all'indirizzo `daniele@dinkel.brot.dg'.

È importante chiarire che non rimane copia dei messaggi per l'utente in questione. Si presume che questo utente riceva la posta elettronica attraverso uno degli indirizzi elencati nel file `~/.forward'.

104.4 Recapito della posta elettronica: la variabile MAIL

La posta elettronica viene recapitata normalmente all'interno di un file di testo unico, appartenente all'utente destinatario. Generalmente, si distinguono due possibilità sulla collocazione di tale file: la directory `/var/mail/' (o anche `/var/spool/mail') e la directory personale dell'utente.

Sendmail in particolare, utilizza il primo modo, per cui ogni utente ha un suo file con lo stesso nome.

I programmi utilizzati per leggere la posta elettronica devono sapere dove trovarla; in generale si utilizza la convenzione della variabile di ambiente `MAIL', che serve a definire il percorso assoluto del file di destinazione dei messaggi.

Di solito, nel profilo di configurazione della shell appare un'istruzione simile a quella seguente, dove si definisce l'uso di un file, il cui nome corrisponde a quello dell'utente destinatario, nella directory `/var/mail/' (si fa riferimento a una shell derivata da quella di Bourne).

MAIL="/var/mail/$USER"
export MAIL

104.5 Mail user agent

Per scrivere, inviare e leggere i messaggi di posta elettronica si utilizza normalmente un programma apposito, detto MUA o Mail User Agent. Programmi di questo tipo se ne possono trovare in grande quantità. Quello storicamente più importante e comunque quasi sempre presente nei sistemi Unix è Berkeley Mail, ovvero Mailx.

Per l'invio dei messaggi, questo tipo di programma può usare due vie possibili: l'MDA locale, solitamente `sendmail', che potrebbe ricevere il messaggio dallo standard input e provvedere da solo al recapito locale o all'invio attraverso il protocollo SMTP; l'accesso diretto a un servente SMTP.

Mailx è quel tipo di programma che si avvale dell'MDA locale per spedire i messaggi, mentre tutti i programmi più sofisticati si avvalgono direttamente del protocollo SMTP. La differenza tra i due approcci è importante: se non si vuole gestire la posta elettronica localmente, ma si ha una casella di posta remota (come quando si fa un contratto con un ISP), si può fare affidamento esclusivamente su un servente SMTP remoto (offerto da quello stesso ISP). Volendo utilizzare Mailx, o programmi simili, si è costretti a installare anche Sendmail.

La lettura della posta elettronica, di solito, è un'operazione che consiste semplicemente nell'accesso al file definito come casella postale dell'utente. Per convenzione, è bene che la variabile di ambiente `MAIL' contenga il percorso assoluto della casella di posta (il file) dell'utente. Ciò garantisce che Mailx sappia dove trovarlo, mentre gli altri programmi più evoluti potrebbero prevedere una configurazione dettagliata che ignori tale variabile.

104.6 Mailx

Mailx è il programma standard di gestione della posta elettronica, originariamente parte dello Unix di Berkeley. Si tratta di un programma piuttosto scomodo da gestire, ma rappresenta lo standard ed è quasi indispensabile la sua presenza.

L'eseguibile `mail' prevede due file di configurazione, uno generale per tutto il sistema e uno particolare per ogni utente. Si tratta rispettivamente di `/etc/mail.rc' e `~/.mailrc'.

Nella sua semplicità, `mail' è comunque un programma ricco di opzioni e di comandi per l'utilizzo interattivo. Tuttavia, di solito, è apprezzato solo nelle situazioni di emergenza, per cui è raro che venga sfruttato al massimo delle sue possibilità.

Per l'invio della posta, Mailx utilizza l'eseguibile `sendmail', passandogli le informazioni attraverso la riga di comando e lo standard input. Questo particolare è importante se si considera la possibilità di utilizzare un MTA differente da Sendmail. Per la lettura dei messaggi ricevuti, Mailx legge il file specificato dalla variabile di ambiente `MAIL'; inoltre, generalmente salva i messaggi letti e non cancellati nel file `~/mbox' (nella directory personale dell'utente).

104.6.1 $ mail

mail [<opzioni>] [<destinatario>...]

`mail' è l'eseguibile di Mailx. Con la sua semplicità ha il vantaggio di poter utilizzare lo standard input come fonte per un testo da inviare. Di conseguenza, è ottimo per l'utilizzo all'interno di script, anche se per questo si potrebbe utilizzare direttamente l'eseguibile `sendmail'.

Alcune opzioni

-v

Visualizza un maggior numero di informazioni.

-i

Ignora i segnali di interruzione.

-I

Forza un funzionamento interattivo.

-n

Non legge il file `/etc/mail.rc' quando viene avviato.

-N

Inibisce la visualizzazione delle intestazioni dei messaggi quando viene letta o modificata la cartella della posta.

-s <oggetto>

Permette di definire l'oggetto già nella riga di comando (se si intendono utilizzare spazi, l'oggetto deve essere racchiuso tra virgolette).

-c <elenco-destinatari>

Permette di definire un elenco di destinatari di una copia del documento (copia carbone). L'elenco degli indirizzi di destinazione è fatto utilizzando la virgola come simbolo di separazione.

-b <elenco-destinatari>

Permette di definire un elenco di destinatari di una copia carbone che non vengono menzionati nell'intestazione del documento (blind carbon copy). L'elenco degli indirizzi di destinazione è fatto utilizzando la virgola come simbolo di separazione.

-f <cartella-della-posta>

Permette di leggere la posta contenuta all'interno di un file determinato.

104.6.2 Funzionamento

`mail', se avviato allo scopo di leggere la posta, mostra un elenco dei messaggi presenti e attende che gli vengano impartiti dei comandi in modo interattivo. Per questo mostra un invito (prompt), formato dal simbolo `&'.

Ognuno di questi comandi ha un nome, che spesso può essere abbreviato alla sola iniziale. L'elenco di questi comandi è molto lungo e può essere letto dalla documentazione interna, mail(1). Qui vengono elencati solo gli utilizzi più comuni, con i comandi relativi.

104.6.3 Configurazione di Mailx

Si è già accennato al fatto che Mailx utilizzi due file di configurazione: `/etc/mail.rc' per tutto il sistema, e `~/.mailrc' per le particolarità di ogni utente. Le direttive di questo file sono gli stessi comandi che possono essere impartiti a `mail' durante il suo funzionamento interattivo.

In generale, si utilizzano prevalentemente i comandi `set' e `unset', che permettono l'attivazione o la disattivazione di alcune modalità di funzionamento, e la definizione di alcune opzioni che prevedono l'indicazione di un'informazione precisa.

Alcune modalità

set|unset append

L'attivazione di questa modalità fa sì che i messaggi salvati nel file `~/mbox' siano aggiunti in coda, invece che inseriti all'inizio.

set|unset ask

set|unset asksub

L'attivazione di questa modalità fa sì che `mail' richieda l'indicazione dell'oggetto prima di consentire l'inserimento del testo del messaggio.

set|unset askcc

L'attivazione di questa modalità fa sì che `mail' richieda l'indicazione di destinatari aggiuntivi in copia carbone alla fine dell'inserimento del messaggio.

set|unset askbcc

L'attivazione di questa modalità fa sì che `mail' richieda l'indicazione di destinatari aggiuntivi in copia carbone nascosta (`bcc') alla fine dell'inserimento del messaggio.

set|unset dot

L'attivazione di questa modalità fa sì che `mail' consenta l'uso di un punto isolato per terminare l'inserimento di un messaggio.

set|unset hold

L'attivazione di questa modalità fa sì che `mail' conservi i messaggi letti nella casella postale, se questi non vengono cancellati esplicitamente.

set|unset ignoreeof

L'attivazione di questa modalità fa sì che `mail' non permetta l'uso del codice di EOF ([Ctrl+d]) per terminare l'inserimento di un messaggio.

Alcune opzioni

set EDITOR=<programma>

Permette di definire il percorso assoluto del programma che si vuole utilizzare per la modifica del testo di un messaggio, quando viene richiesto espressamente durante il suo inserimento, attraverso la sequenza di escape `~e'.

set VISUAL=<programma>

Permette di definire il percorso assoluto del programma che si vuole utilizzare per la modifica del testo di un messaggio, quando viene richiesto espressamente durante il suo inserimento, attraverso la sequenza di escape `~v'.

set PAGER=<programma>

Permette di definire il percorso assoluto del programma che si vuole utilizzare per scorrere il contenuto di un messaggio quando questo viene letto attraverso `mail'. Perché funzioni correttamente, occorre definire anche l'opzione `crt'.

set crt=<programma>

Permette di definire il numero di righe di altezza dello schermo, in modo da poter gestire correttamente il programma di impaginazione visuale (`more' o `less').

set MBOX=<percorso>

Permette di definire il percorso assoluto del file da utilizzare per salvare i messaggi, al posto di `~/mbox'.

set record=<percorso>

Permette di definire il percorso assoluto di un file da utilizzare per salvare una copia dei messaggi che vengono inviati.

Esempi

set append dot save asksub

Quello che si vede sopra è il contenuto del file di configurazione generale tipico (il file `/etc/mail.rc').

set MBOX=/home/tizio/mail/ricevuta
set record=/home/tizio/mail/spedita

L'esempio si riferisce a un file di configurazione personale, ovvero `~/.mailrc', dove l'utente vuole gestire la sua posta nella directory `~/mail/' (si tratta dell'utente `tizio').

set MBOX=mail/ricevuta
set record=mail/spedita

Questo esempio produce lo stesso risultato di quello precedente: i percorsi sono relativi alla directory personale dell'utente.

104.7 Pine

Si tratta di un programma per la gestione della posta più potente e pratico rispetto al normale Mailx, che consente anche la lettura delle news.

In particolare, per l'invio dei messaggi, Pine utilizza il protocollo SMTP, cosa che permette di utilizzarlo anche senza avere installato Sendmail localmente, o un altro MTA simile. Infatti, spesso si utilizza la posta elettronica solo per Internet, disponendo di un solo elaboratore personale, e senza alcuna necessità di gestire la posta elettronica locale. In questi casi, Sendmail e Mailx, potrebbero essere considerati dei componenti inutili (o quasi) del sistema.

<!> La licenza di Pine non consente la distribuzione di versioni modificate. Si veda la nota relativa nell'appendice L.2.

104.7.1 Avvio di Pine

pine [<opzioni>] [<indirizzo>]

Quando l'eseguibile `pine' viene avviato per la prima volta da un utente, si crea una directory `~/mail' contenente `~/mail/saved-messages' e `~/mail/sent-mail' entrambi vuoti, e un file di configurazione `~/.pinerc'. Dopo una prima schermata di presentazione, Pine mostra il suo menu.

       ?     HELP               -  Get help using Pine

       C     COMPOSE MESSAGE    -  Compose and send a message

       I     FOLDER INDEX       -  View messages in current folder

       L     FOLDER LIST        -  Select a folder to view

       A     ADDRESS BOOK       -  Update address book

       S     SETUP              -  Configure or update Pine

       Q     QUIT               -  Exit the Pine program

   Copyright 1989-1996.  PINE is a trademark of the University of Washington.

? Help                     P PrevCmd                  R RelNotes
O OTHER CMDS L [ListFldrs] N NextCmd                  K KBLock

Figura 104.2: Menu principale di Pine.

104.7.2 Configurazione di Pine

Probabilmente, la cosa più utile da fare la prima volta che si utilizza questo programma, è quella di configurarlo, utilizzando la lettera `S' come sinonimo di Setup. Si ottiene un sottomenu:

Choose a setup task from the menu below :
? Help        P [Printer]   C Config     S Signature
^C Cancel     N Newpassword U Update

Premendo la lettera `C' come sinonimo di Config si arriva alla maschera di configurazione. La maschera non può essere contenuta tutta in una sola schermata, di conseguenza, si utilizzano la [barra spaziatrice] per scorrerla in avanti e il segno [-] per scorrerla all'indietro. Quella seguente è la prima parte della configurazione predefinita (cioè quella iniziale) dell'utente `tizio'.

personal-name            = <No Value Set: using "Tizio">
user-domain              = <No Value Set>
smtp-server              = <No Value Set>
nntp-server              = <No Value Set>
inbox-path               = <No Value Set: using "inbox">
folder-collections       = <No Value Set: using mail/[]>
news-collections         = <No Value Set>
incoming-archive-folders = <No Value Set>
pruned-folders           = <No Value Set>
default-fcc              = <No Value Set: using "sent-mail">
default-saved-msg-folder = <No Value Set>
postponed-folder         = <No Value Set: using "postponed-msgs">
read-message-folder      = <No Value Set>
signature-file           = <No Value Set: using ".signature">
global-address-book      = <No Value Set>
address-book             = <No Value Set: using .addressbook>
...

Vale la pena di definire almeno la prima parte. Per inserire un dato nuovo si usa la lettera `a' come sinonimo di add, mentre per modificare un valore preesistente si uilizza la lettera `c' come sinonimo di change. Per cancellare una voce si utilizza la lettera `d' come sinonimo di delete. Alcune voci consentono l'inserimento di dati multipli utilizzando una successione di richieste di inserimento.

104.7.2.1 Elementi di configurazione

Segue un elenco parziale degli elementi che possono essere configurati, assieme a una breve descrizione del loro significato.

Alla fine, la parte iniziale della maschera di configurazione potrebbe apparire come la seguente:

personal-name            = Tizio Tizi
user-domain              = weizen.mehl.dg
smtp-server              = weizen.mehl.dg
nntp-server              = news.notiziario.dg
inbox-path               = /var/mail/tizio
folder-collections       = ~/Mail/[]
news-collections         = <No Value Set>
incoming-archive-folders = <No Value Set>
pruned-folders           = <No Value Set>
default-fcc              = sent-mail
default-saved-msg-folder = saved-mail
postponed-folder         = postponed-msgs
read-message-folder      = <No Value Set>
signature-file           = ~/.signature"
global-address-book      = <No Value Set>
address-book             = ~/.addressbook

---------------------------

Appunti Linux 2000.04.12 --- Copyright © 1997-2000 Daniele Giacomini --  daniele @ pluto.linux.it


1.) In effetti, la directory `/var/spool/mqueue/' e il suo contenuto non possono essere accessibili agli utenti comuni, altrimenti i messaggi in partenza potrebbero essere letti.

2.) Naturalmente, questo discorso vale se si sta usando un servente SMTP locale per ottenere l'invio del messaggio.

3.) Per l'Italia e gran parte del mondo occidentale, si utilizza normalmente la codifica ISO 8859-1.


[inizio] [indice generale] [precedente] [successivo] [indice analitico] [contributi]