Newsgroup: it.comp.software.mailreader
Titolo: (agent)salvataggio mail e news e import su thunderbird

ciaoa tutti,volevo sapere se il tipo di file in cui salva i messaggi e
le news agent e' compatibile con quello usato da thunderrbird e
pimmy(che ho comprato la pen usb e l'ho installato li)
grazie mille ciao

pimmy(che ho comprato la pen usb e l'ho installato li)
Non so come salvi i dati agent, posso dirti come li salvano Pimmy e
Thunderbird.
Pimmy salva ogni messaggio in un singolo file .eml. Nel file c'č il
messaggio di testo "as is" senza nulla in piů.
Thunderbird salva i messaggi in file formato mbox (un solo file con tanti
messaggi) e in piů ha file indice associato.
-- 
-antonio-
www.geminisoft.com
(email valida sul mio sito)

messaggi) e in più ha file indice associato.
ma come fanno i vari programmi a capire dove finisce un messaggio e
inizia un altro.
Eudora ad esempio riesce ad aprire un file mbx anche senza il relativo
file toc.

file toc.
Immagino che venga fatta per motivi di velocità in particolare per
cancellare messaggi: se hai un mbox con 10.000 messaggi e cancelli un
messaggio in mezzo devi riscrivere tutto il file. Se hai un file toc puoi
lasciare il messaggio nell'mbox e aggiornare solo il toc. Poi una funzione
di "compattazione" mette a posto tutto.


Il messaggio inizia con "From " (non l'header "From:")
lo so, ma secondo te questo
From ???@??? Sat Jun 26 07:07:32 2004
come viene interpretato.
Vedi per caso il numero di righe, la dimensione?
Io leggo solo data e ora!!!

Io leggo solo data e ora!!!
Il messaggio termina al prossima riga con "From " oppure a fine file.
E' un formato a dir poco terribile... ma cosě č :-)


E' un formato a dir poco terribile... ma cosě č :-)
e mettiamo che il testo di un'email contenga proprio
From ???@??? Sat Jun 26 07:07:32 2004
Che succede?

From ???@??? Sat Jun 26 07:07:32 2004
In teoria nel salvare il messaggio, bisognerebbe cercare eventuali righe
che inizino con "From" ed aggiungere uno spazio all'inizio della riga.
Proprio per evitare casi come questi.
-- 
-angelo-
Keep in touch! Subscribe our newsletter
Restiamo in contatto! Iscriviti alla nostra newsletter
www.geminisoft.com

 Che succede?
Leggendo linea per linea, ci sono tanti modi per controllare che sia
l'inizio di un nuovo messaggio, per esempio puoi pretendere che per essere
l'inizio di un messaggio dopo gli altri header, o che sia l'inizio del
file, o che non abbia passato la riga vuota tra gli header e il corpo...

file, o che non abbia passato la riga vuota tra gli header e il corpo...
tutti modi troppo approssimativi IMHO

Proprio per evitare casi come questi.
si, potrebbe essere una soluzione :-)

 tutti modi troppo approssimativi IMHO
Perche' mai? Un archivio scritto dal programma stesso, sicuramente sara'
scritto in modo da non dare errori, ti leggi riga per riga il tutto e con
tre variabili sai dove sei: con un uso intelligente delle condizioni, lo
leggi in un lampo (ai tempi scrivevo un offline reader, e caricare
parecchie migliaia di mail non era ne lento, ne consumava troppa memoria,
visto che conservavo in memoria solo oggetto, mittente, data, msgid e
references, oltre alla posizione di inizio e fine del messaggio nel file
per leggere il body: e se aggiornasse gli indici mentre aggiunge messaggi
alla base dati, non credo sia possibile si confonda, del resto non ho mai
visto problemi in questo senso con nessun mailer).

visto problemi in questo senso con nessun mailer).
Però se hai archivi molto grandi e fai operazioni sulle cartelle di
spostamento o cancellazione e devi aggiornare il file mbox ad ogni
operazione la cosa diventa sicuramente lenta.


visto problemi in questo senso con nessun mailer).
ho già detto che eudora legge anche senza file toc

 operazione la cosa diventa sicuramente lenta.
Era l'unico motivo, in pratica, per cui creavo gli indici (oltre che per
marcare letti e non letti): non per la velocita' di lettura (ripeto, la
lettura per righe era velocissima con il pur lento VB, oltre al fatto che
lasciavo inalterati i messaggi originali, che per la cronaca erano gli
Xpress della bbs di McLink e il classico flow dei messaggi usenet, e li
usavo anche dopo averci aggiunto la parte nntp e pop3), ma praticamente per
marcare i messaggi cancellati, da non mostrare, e da eliminare ad una
successiva compattazione. Nel caso, ovviamente, il tempo di riscrittura dei
file dipendeva dalla dimensione. All'uscita del file (corrispondente ad un
gruppo o a una mailing list) salvavo l'indice con i dati, che erano pochi
kb, e lo rileggevo alla riapertura, se c'erano differenze tra la dimensione
finale e quella che avevo nell'indice registrato, ripartivo da quel
punto...
La struttura dell'array che tenevo in memoria era semplice, tipo (se
conosci appena VB)
Type messaggio_struttura
    sChiScrive As String
    sOggetto As String
    sGruppo As String
    sMsgId As String
    sDataOra As String
    sXref As String
    sStato As String
    lPosInizio as long
    lPosFine as long
End Type
E tenevo in memoria solo questo: quando aprivo un messaggio leggevo la
parte tra posinizio e posfine e li' lavoravo.
Provai anche con altri sistemi tipo modificare parti di header, caricamento
in background della lista dei messaggi, la scrittura della maggior parte
delle operazioni su disco direttamente tramite le api di windows etc etc,
anche se francamente adesso mi ricordo sempre meno, visto che ho cessato di
starci dietro da tempo, ma comunque archivi di 3-4000 mail erano usabili
senza attese tremende (comunque facevo impostare un numero standard per il
caricamento, tipo gli ultimi 500). 
Scusa la prolissita', ma mi ricordo che mi ci divertivo un sacco a fare
prove, ci avro' passato sopra buone buone almeno un migliaio d'ore :-)

 si ma nel file mbx non leggo nessuna posizione
Quando leggi il file, le posizioni le trovi da solo, e' piu' semplice e
veloce tenere un contatore dei caratteri passati che cercare una riga,
spezzarla, prenderne i valori  :-)

prove, ci avro' passato sopra buone buone almeno un migliaio d'ore :-)
A chi lo dici!


plugin interni che avevo creato:-)))
Noi per Pimmy usiamo il C++ con delle classi scritte da noi che usano le
API di sistema per avere un unico .exe e il programma il + piccolo
possibile. Che dire? Sono in pochi ad apprezzare il lavoro dei
programmatori :-)


operazione la cosa diventa sicuramente lenta.
Come ti dissi già tempo fa non si notano tempi morti eccessivi. 
Mutt impiega quasi 5 secondi ad aprirmi una mailbox di circa 380MB ma
finche eravamo sotto il paio di centinaia i tempi erano realmente
trascurabili.
Certo che se dei "draghi" di programmatori smilzi o romulani, si
inventano delle nuove tecniche per aprire cartelle da decine di
migliaia di file eml in un batter d'occhio, beh, come per la reclame
di quell'auto, in un istante tutto sembra più vecchio, l'onesto
formato mbox, i mailreader più noti, magari persino Pimmy 3.5 potrebbe
diventare obsoleto! ;-)
Ciao.

Fosse vero...
Buffone... :-)))
Ciao.

 Dovevi creare un crp... :-)
Beh, a sapere che e' :-)

salvataggio idem.
Si, ma con Linux difficilmente c'č un problema. :-P

Si, ma con Linux difficilmente c'è un problema. :-P
Confermo, io non he mai :-D



http://tinyurl.com/5arh7
OK, il nostro formato è quello di MH :-)


Beh, a sapere che e' :-)
Gianni! 
L'ottimismo vola :-)
http://www.google.it/search?q=crp&hl=it&lr=lang_it&sa=X&oi=lrtip8
Sto scherzando ^__^: guarda qui:
http://groups.google.it/groups?hl=it&lr=lang_it&q=crp+mailreader&btnG=Cerca
-- 
Drago
Battute celebri e citazioni da Cinema e TV:
Hokuto Audioteca 
http://www.hokutoaudioteca.it

Ciao, *Gianni*!


Confraternita Risollevamentomorale Programmatori. :-)