MAIL

(posta elettronica)

mail(1) è un MUA (Mail User Agent) in modo testo. Permette di mandare messaggi di posta elettronica e manipolare i messaggi ricevuti, da/a utenti locali o remoti attraverso la rete. Per provare un utente può inviare un messaggio a sé stesso. I dettagli del comportamento interattivo di mail variano da sistema a sistema. Un esempio con mailx di Linux o FreeBSD:

$ mail
(controlla la posta)
No mail for ant
(niente di nuovo)
$ mail ant
(scrivi messaggio ad ant)
Subject: auto-prova
(oggetto)
prima linea
seconda
(CTL-d per terminare)
Cc:
(RETURN)
$ mail
(stavolta c'è qualcosa)
Mail version 8.1.1 6/6/93.  Type ? for help.
"/var/spool/mail/ant": 1 message 1 new
>N 1 ant@localhost.locald Thu Feb 28 22:08 14/430 "auto-prova"
&
(prompt di mail, premo ENTER)
Message 1:
From ant  Thu Feb 28 22:08:28 2002
Date: Thu, 28 Feb 2002 22:08:28 +0100
From: Antonio Bonifati <ant@localhost.localdomain>
To: ant@localhost.localdomain
Subject: auto-prova

prima linea
seconda

&
(premo ancora ENTER)
At EOF
(nessun altro messaggio)
& q
Saved 1 message in mbox
(esci da mail)

All'inizio mail stampa un prospetto dei messaggi contenuto nella mailbox, in ordine FIFO (o LIFO se avete un'altra versione di mail) e il messaggio corrente è il numero 1. Usare il comando p per (ri)stampare il messaggio corrente. Il comando + si sposta sul messaggio successivo e lo stampa. - si sposta sul messaggio precedente e lo stampa. Un numero si sposta sul messaggio con quel numero e lo stampa. h ripete la stampa del prospetto. d marka il messaggio corrente per la cancellazione senza mostrarlo e stampa il successivo.

! esegue il comando di shell che segue
? stampa breve sommario comandi
+ messaggio successivo, stampa
- messaggio precedente, stampa
d cancella messaggio corrente, stampa successivo
h stampa header dei messaggi
m to-addr ... nuovo messaggio a to-addr ...
p (ri)stampa messaggio corrente
r risponde al messaggio corrente
s [file] salva msg corrente in [file] (default mbox)
w [file] come s, ma solo il body, senza gli header
q o CTL-d esci
x esci senza modificare la casella postale

q scarta i messaggi cancellati e salva quelli letti nel file di testo ~/mbox. I messaggi non letti rimangono nella casella postale. Con x invece si annullano tutti i comandi d dati prima, e si esce da mail senza modificare la casella postale in /var/spool/mail/$USER, /var/mail/$USER e simili.

Altri esempi:

& !ls
...
!
&
(esegue un ls da dentro mail)
$ mail -f
(legge le vecchie mail in mbox)
$ mail antonio.bonifati@libero.it
(mail a utente remoto con SMTP)
$ mail
...
& r
To: root
Subject: Re: prova

(reply con quoting)
~m
Interpolating: 1
(continue)
risposta
(~m include msg originale (header+body))
EOT
...
(CTL-d)
# mail
(notare le > che indicano il quoting)
Mail version 8.1 6/6/93.  Type ? for help.
"/var/mail/root": 1 message 1 new
>N  1 ant               Sun Mar  3 18:15  24/610   "Re: prova"
&
Message 1:
From ant Sun Mar  3 18:15:33 2002
Date: Sun, 3 Mar 2002 18:15:32 +0100 (CET)
From: Antonio Bonifati <ant>
To: root
Subject: Re: prova
In-Reply-To: <200203031710.g23HAxx00140@tequila.rett.polimi.it>
> From root Sun Mar  3 18:10:59 2002
> Date: Sun, 3 Mar 2002 18:10:59 +0100 (CET)
> From: Charlie Root <root>
> To: ant
> Subject: prova
>
> testo
> di prova
>
risposta

Per invocare l'editor su un messaggio che si sta scrivendo digitare ~e: si può editare tutto quello scritto finora e finita la sessione di editing quello che si digita viene appeso.

Interrompendo la scrittura di un messaggio con CTL-C il messaggio viene salvato in ~/dead.letter

mail è molto utile negli script di shell perché può essere usato in modo non interattivo:

mail -s "subject" rcpt < msgfile
(manda msgfile a rcpt)
prg cmd | mail -s "subject" rcpt
(manda a rcpt l'output di prg)

Per creare una lista di distribuzione definirla in ~/.mail_aliases come alias, ad es.:

$ cat alias friends bill joe mark@somedomain.com >>~/.mail_aliases
$ mail friends
(utilizza la lista definita prima)
<- indietro indice avanti ->