Newsgroup: it.comp.os.linux.software
Titolo: Leggere BODY di email da shell

Ciao a tutti,
supponendo di voler leggere il BODY (headers esclusi quindi) di un messaggio 
in arrivo sulla mia casella (sistema Debian) come potrei fare? Leggendo 
direttamente con cat/grep/cut mi perdo la codifica e quindi se ci sono delle 
accentate o se il testo va a capo con "=" non leggo nulla. Esiste un client 
che mi dia a singolo comando il BODY in modo che possa automatizzare il 
tutto e salvare i BODY in un'unica mail che mi viene inviata giornalmente? 
Devo spedire sequenze di dati di continuo verso una casella in modo che 
tramite cron un sistema continui a leggere i BODY tenendo conto delle 
codifiche e poi li metta di volta in volta in coda ad un file di testo...
Grazie 

 codifiche e poi li metta di volta in volta in coda ad un file di testo...
Potresti fare uno scriptino che interroga il server pop e reperisce
i messaggi tramite perl o C.
Davide
-- 
The linuX Files -- The Source is Out There.

 i messaggi tramite perl o C.
Possibile che in un campo comune come quello delle e-mail non esista un 
client ad hoc che possa essere istruito per questo compito direttamente da 
linea di comando senza perdere ore in programmazione? :-( 

 comando senza perdere ore in programmazione? :-( 
Ore? Piu' che altro minuti.
Davide
-- 
Dennis Ritchie:  "So fsck was originally called something else"
Question:  "What was it called?"
Dennis Ritchie:  Well, the second letter was different.
--at Usenix

 in arrivo sulla mia casella (sistema Debian) come potrei fare?
Dai l'email in pasto a metamail. Impostando il suo file di configurazione
puoi riversare il testo e i vari elementi MIME in vari file, eventualmente
convertendo il testo con iconv nella codifica che preferisci. Ma c'e' un
po' di lavoro da fare. Il mio programma tt (v. sito personale) contiene
una serie di script che fanno proprio questo. In mancanza di specifiche
piu' dettagliate di quello che devi fare non posso dire di piu'.
Ciao,
 ___ 
/_|_\  Umberto Salsi
\/_\/  
www.icosaedro.it

 piu' dettagliate di quello che devi fare non posso dire di piu'.
In parole povere mi serve qualcosa che se eseguito (verrà eseguito ogni 5 
secondi nell'applicazione pratica) verifichi in /var/mail/loginutente la 
presenza di email (magari con un soggetto comune) e se presente una mail ne 
salvi il BODY in un file di testo senza interazione alcuna da parte 
dell'utente. Qualcosa tipo ./programmino -s Soggetto -f 
/var/mail/loginutente >> fileditesto.txt
Spero di essermi spiegato bene :-) 

 Spero di essermi spiegato bene :-) 
Spero di aver capito bene io :-)
-- 
Vuoi fare colpo su di lei con me?
Fai colpo su di lei con me! Fai colpo su di lei con me!
[Dr. Gonzo : Paura e delirio a Las Vegas]

> grepmail con un sed per togliere l'header dovrebbero fare al caso tuo.
Ero tutto contento, sembrava che la tua soluzione funzionasse 
eccellentemente, ma mi sono accorto che non riesco a decodificare le mail 
con accentate :( Secondo gli headers il sistema codifica in plain-text le 
mail senza accenti, e invece le mail accentate vengono messe in casella 
come:
Content-Transfer-Encoding: Quoted-Printable
Purtroppo risultano completamente illeggibili se lette con procmail :-(
Ti allego come leggo l'output con grepmail:
perch=E9 funziona il sistema? Sar=E0 perch=E9 la codifica =E8 mal =
gestita da grepmail ? 

 Content-Transfer-Encoding: Quoted-Printable



Secondo me non e` un problema di grepmail e nemmeno di procmail.  Se
io vado a leggere direttamente nella /var/spool/mail con less vedo
quello che vedi tu:
[1413][vale@damun:/bank/VEDERE]$ cat ~/Mail/IN | grep "Vim User Manual"
Subject: Fwd:Nuovo indirizzo per il Vim User Manual
Il nuovo indirizzo per la traduzione del Vim User Manual =E8:
[1413][vale@damun:/bank/VEDERE]$
(la seconda riga dovrebbe finire con una e accentata)
Il "Content-Transfer-Encoding" e` un header della mail, e viene creato
quando la mail viene composta, quindi tu non ci puoi fare molto.
Secondo me il tuo problema e` da analizzare da un'altro punto di
vista.


 vista.
Diciamo che se perň leggo la mail con mutt oppure scaricandola banalmente 
tramite POP3 con Outlook (sě, proprio quella roba per windows orribile) dal 
laptop riesco a leggerla benissimo. Ma se voglio ricavarne il corpo in 
plain-text non c'č nulla che possa convertirmela? :-( 

 plain-text non c'è nulla che possa convertirmela? :-( 
Lo stesso mutt, penso :-) Se ci pensi se leggi una mail e la salvi su
disco, penso che i caratteri giusti vengano mantenuti, quindi ti basta
automatizzare quella procedura.


 Spero di essermi spiegato bene :-) 
Per niente. Un email, inteso come header + body e' si' un testo, ma
con il quale sono codificate una serie di informazioni ivi comprese
immagini, suoni, html, plain text e qualsiasi altra forma di dato,
piu' le informazioni necessarie per correlare tra loro tutti questi
pezzi (es.: pagina html con immagini associate). Le specifiche
di questa codifica si chiamano MIME e sono uno standard Internet
(v. ad esempio 
http://www.icosaedro.it/articoli/protocolli2.html
 )
e prevedono informazioni che stanno nell'header e nel body.  Solo le
email piu' semplici hanno un body plain text, ma anche queste possono
essere variamente codificate (quoted printable, character encoding,
ecc.). Forse cosi' ti rendi conto che "salvare il body" eliminando
l'header non ha senso.


 l'header non ha senso.
In realtà vorrei salvare il body riconvertendolo in plain-text. Non chiedo 
molto, chiedo solo di poter leggere la mia mail in formato leggibile e non 
codificato. Se provo il fetch tramite POP3 naturalmente la ottengo 
codificata, con fetchmail consigliato dal buon ouz rimane codificata, con 
mutt è sempre codificata, solo leggendola con Outlook Express riesco a 
decodificarla e a leggere le dannate accentate. Possibile che non riesca a 
leggere con un comando tipo fetchmail la mia mail Quoted-Printable 
rendendola plain-text? Possibile che nessun codice sia stato mai sviluppato 
per leggere da un banale terminale una data email decodificandola? Non mi 
pare molto comodo come approccio riscrivere da zero un programma o uno 
script ad-hoc smazzandomi gli RFC... 

 automatizzare quella procedura.
Ops correggo: nemmeno mutt decodifica quella m**da, solo Outlook Express 
riesce a farlo. Idee? 

 riesce a farlo. Idee? 
export | grep LANG 
che ti dice?
		Roberto Oliva

 che ti dice?
Nulla, non ho impostato LANG 

 Nulla, non ho impostato LANG 
prova LANG="it_IT"
		Roberto Oliva

 prova LANG="it_IT"
Anzi, sai che ti dico? Dai un occhio a:
http://www.pluto.it/ildp/IH/
		Roberto Oliva