Newsgroup: it.comp.os.linux.iniziare
Titolo: Conservare tutti i messaggi locali in /var/mail/utente

Debian stretch, mail.mailutils, exim4.
 
Normalmente quando ricevo una mail interna[¹] da cron od altro, questa viene
inizialmente posta in /var/mail/utente. Dopo la lettura, col comando mail,
sparisce da /var/mail/utente e si accoda al file mbox nella home.
 
Se volessi rileggere la mail in un secondo tempo col comando mail non la vedo
più. Lo rivedo solo con il comando mail -f comprese tutte le altre precedenti,
ma se voglio vedere tutti i messaggi, letti e non letti insieme, devo dare i
due comandi separatamente.
 
C'è il modo di leggere le mail nuove e già lette contemporaneamente e lo usai
anni fa su un vecchio pc, ma non mi ricordo cosa feci.
 
Ora vorrei avere la stessa funzione su questo pc. Come faccio?
 
 
 
[¹] Parlo delle mail di sistema, non quelle dall'account di posta, per le quali
uso un'altro programma.
 
-- 
E' falso che tutti i numeri primi sono dispari
E' vero che un numero primo è anche pari

 uso un'altro programma.
 
Il comando mail lanciato liscio apre la mbox di sistema del tuo utente:
/var/mail/utente
 
oppure, in altri sistemi tipo su slackware:
/var/spool/mail/utente
 
Questo file è la destinazione della posta che ti arriva internamente
credo via exim4 o sendmail o chi per esso insomma, ci siamo capiti,
se tu mandi una mail digitando una roba tipo:
------------------
$ mail bigumberto
Subject: prova
prova prova prova
.
------------------
 
Il messaggio che invii a te stesso ti arriva in /var/mail/bigumberto
e non in:
 
~/mbox
 
Che invece è la casella in cui vengono accodati i messaggi, come dici
dopo la lettura.
Nel mio caso noto una differenza rispetto a quanto riporti tu:
se lancio “mail” e in /var/spool/mail/joe ho uno o più messaggi
mi viene aperta quella casella di sistema e vedo al suo interno
i messaggi nuovi da leggere *ma anche quelli già letti*.
Se leggo i nuovi e poi esco, vengono lasciati lì, non accodati
in ~/mbox. Quindi se lancio di nuovo mail, continuo a vedere i
vecchi messaggi già letti, marcati con "O" che immagino stia per
"Old". Se se ne sono aggiunti di nuovi li vedo tutti insieme.
 
Nel mio caso solo quando li cancello vengono accodati in ~/mbox.
A quel punto anche io non li vedo più lancindo mail liscio, ma
solo lanciando col flag -f.
 
Però c’è il comando change dir interno a mail, che ti permette di
passare da una mbox (es quella dello spool di sistema) ad un’altra,
come quella della tua home ~/mbox.
Per farlo il comando è "fold", trovi nel man:
 
folder (fold)
  The folder command switches to a new mail file or folder. With no
  arguments, it tells the user which file he is currently reading. If
  an argument is given, it will write out changes (such as deletions)
  the user has made in the current file and read in the new file.
  Some special conventions are recognized for the name. # means the
  previous file, % means the invoking user's system mailbox, %user
  means user's system mailbox, & means the invoking user's mbox file,
  and +file means a file in the folder directory.
 
In soldoni:
 
fold &
 
ti mette nella casella /home/bigumberto/mbox
 
fold %
 
ti mette nella casella /var/mail/bigumberto
 
 
Ci deve essere qualche opzione di default che nel mio caso
consente il comportamento che serve a te: i messaggi letti
restano nello spool di sistema. Devi giocare su quel punto
anche cercando in rete: come fare in modo che i messaggi
letti restino nello spool di sistema.
 

 letti restino nello spool di sistema.
 
 
In rete avevo già cercato prima di chiedere, senza trovare nulla.
 
 
Trovato questo appunto su un backup di parecchi anni fa:
 
 
 
MANTENERE MAIL lette  IN /VAR/LOG/MAIL
 
Creare file:    /etc/mail.rc
 
set ask askcc append dot save crt hold
ignore Received Message-Id Resent-Message-Id Status Mail-From Return-Path Via Delivered-To
 
 
DEVE CONTENERE IL COMANDO   HOLD!
 
 
 
E funziona.
 
 
 
 
 
-- 
--- GoldED 2.41
 * Origin: <-------affittasi spazio pubblicitario-------> (2:335/225.4)


Confermo:
 
Nel mio caso su slack 14.2 c'è mailx-12.5
Che in fondo al man riporta Heirloom mailx 12.5
I files di config come dicevi sono i seguenti:
 
-----
FILES
       ~/.mailrc
              File giving initial commands.
 
       /etc/nail.rc
              System wide initialization file.
 
       ~/.mime.types
              Personal MIME types.
 
       /etc/mime.types
              System wide MIME types.
 
------------------------------------
 
Per cui prima di creare un /etc/mail.rc ex novo potrebbe
essere il caso anche di editare quello che c'è già magari
facendone prima una copia.In modo da aggiungere solo
l'opzione "set hold" che ti serve e lascire il rresto com'è,
che potrebbe servire al sistema.
Oppure forse meglio ancora, se ti serve solo per un utente
creare il file di configurazione nella sua home ~/.mailrc.
 
Nel mio caso ho /etc/nail.rc, con il seguente default:
------------------------------
$ sed '/^#\|^$/d' /etc/nail.rc
set hold
set append
set ask
set crt
set dot
set keep
set emptybox
set indentprefix="> "
set quote
set sendcharsets=iso-8859-1,utf-8
set showname
set showto
set newmail=nopoll
set autocollapse
set markanswered
ignore received in-reply-to message-id references
ignore mime-version content-transfer-encoding
fwdretain subject date from to
------------------------------
 
Dove si vede in effetti che l'opzione hold è attivata.
 
A ben vedere lo diceva anche il manuale, nella sezione
"Commands" alla voce "hold" appunto:
-----------------------------------
 hold   (ho, also preserve) Takes a message list and
             marks each message therein to be saved
             in the user's system mailbox instead of
             in mbox. Does not override the delete
             command. mailx deviates from the POSIX
             standard with this command, as a `next'
             command issued after `hold' will display
             the following message, not the current
             one.
-----------------
 
Facile da trovare solo col senno di poi!  ;)

 Ora vorrei avere la stessa funzione su questo pc. Come faccio?
 
  Io metto in /etc/mail.rc o in ~/.mailrc la riga:
 
set hold
 
Così le mie mail locali rimangono in /var/mail/alessandro, non sono
spostate in ~/mbox dopo la lettura.
 
 
  Ciao,
 
 
Alessandro