Newsgroup: it.comp.software.mailreader
Titolo: [Hamster] trasferimento mailing-list

Seguo da tempo delle mailing-list tramite pegasus.
Ora ho deciso di continuare a seguirle tramite hamster+xnews, tutto ok
per i nuovi messaggi, ma i vecchi sono rimasti in pegasus.
C'e' un modo semplice di trasferire questi messaggi da pegasus ad
hamster? 
Ho provato on un forward da pegasus ad un user locale di hamster, ma non 
funziona, ovvero le regole impostate tramite il file MailFilt.hst 
funzionano solo quando hamster prende i messaggi da altri server, e non
dai messaggi che gli arrivano in locale.
In realta' il problema l'ho risolto con una soluzione alquanto spartana 
(con l'installazione di un altro mail server locale), ma questa soluzione
puo' andare bene per una volta, ovvero per la prima volta, quando
trasferisco in massa tutti i messaggi, se in seguito per sbaglio scarico
la posta con pegasus potrei ricevere messaggi della mailing-list ed il
problema si riproporrebbe (da una veloce lettura del manuale credo di
aver capito che i pegasus non puo' filtrare i messaggi sul server,
altrimenti si potrebbero lasciare su quest'ultimo i messaggi delle
mailing-list per poi scaricarli con hamster) 
Ciao e grazie
Sandro

hamster? 
Dipende dal formato di cartella impiegato su Pegasus. Se hai scelto 
di usare il formato Unix Standard avrai dei file .mbx da importare su 
Hamster tramite...
ham import -ih -go"hamster.gruppolocale" percorso/nomefile.mbx
Se invece hai adottato il formato proprietario di Pegasus, basta 
creare una nuova cartella unix standard e trasferire tutto lě dentro.
In teoria anche Xnews č compatibile con il formato Unix Standard, ma 
un brutto bug (segnalato e spero in corso di correzione) non gli 
permette di condividere questo tipo di cartelle con altri programmi, 
nonostante il manuale ne parli espressamente (cercare la parola 
"Eudora").
-- 
"Multiple exclamation marks," he said, shaking his head, "a sure sign
for a diseased mind." (c) T. Pratchett in Eric


Ti ringrazio
Sandro

aggiungerlo, magari con una macro).
Cosa consigli? Di roba buona che fa sostituzione su più file conosco 
solo UltraEdit (che però si paga).


Sulla base dei suggerimenti ricevuti da EagleStorm e PaoloR, ho
realizzato questo script per importare in un gruppo locale di hamster i
messaggi provenienti da una mailing-list in formato unix. 
Non giuro sulla sua efficienza nel caso di trasferimento di molti
articoli, soprattutto per la parte che inserisce il campo "Newsgroups:". 
Volendo si potrebbe far svolgere questo compito ad un programmino in
C/C++. 
Mi sono cosi' disinstallato il secondo server mail (argosoft mail) verso
il quale con pegasus facevo un forward dei messaggi  che poi recuperavo
con hamster (avendogli impostato tra i server pop lo stesso
argosoft-mail) 
In testa allo script vanno inseriti il nome del gruppo locale di hamster
il nome del file mbx completo del percorso. 
Nel caso ci siano piu' mailing list da importare, si possono fare piu'
copie dello stesso script, assegnare loro dei nomi significativi (es:
ImportEudoraML  etc.) e cambiare per ognuno di questi i valori delle
variabili in testa. 
Dopo aver importati i messaggi, conviene cancellarli dal mailreader,
altrimenti alla successiva importazione saranno nuovamente reimportati
anche i vecchi. 
#!hs2
var($filembx,$Linee,$LineeTemp,$i,$linea,$primicar)
var($nomeGruppo,$trovato)
#inserire in $nomeGruppo il nome del gruppo locale
$nomeGruppo="mailing-list.prova"
#inserire in $filembx il nome del file mbx completo del percorso
$filembx="E:\PMAIL\MAIL\Sandro\UNX02501.MBX"
hamwaitidle
if (!fileExists($filembx))
   warning ("Il file " + $filembx + " non esiste")
   quit
endif
$trovato=0
$i = 0
while ($i < HamGroupCount)
    if (HamGroupName($i)=$nomeGruppo)
	$trovato=1
	break
    endif
    inc ($i)
endwhile
if (!$trovato)
   warning ("Il gruppo " + $nomeGruppo + " non esiste")
   quit
endif
$Linee = listalloc()
$LineeTemp = listalloc()
ErrCatch (True)
listload($Linee,$filembx)
if (ErrNum<>0)
    if (ErrNum=3)
        warning("File " + $filembx + " probabilmente gia' in uso"
    else
        warning ("Errore: ", ErrNum, " ", ErrMsg)
    endif
    listfree($Linee )
    listfree($LineeTemp )
    quit
endif
ErrCatch (false)
for ($i,0,listcount($Linee)-1)
   $linea= listget($Linee,$i)
   listadd($LineeTemp,$linea)
   $primicar = copy($linea, 1, 5)
   if ($primicar="From:")
   	listadd($LineeTemp,"Newsgroups: " + $nomeGruppo)	
   endif
endfor
ListSave ($LineeTemp, "tempmbx.txt")
execute ("ham import -ih -go""" + $nomeGruppo + """ " + _
"tempmbx.txt")
FileDelete ("tempmbx.txt")
listfree($Linee )
listfree($LineeTemp )
quit


C'e' un problema.
I messaggi cancellati non vengono di fatto eliminati dal file mbx, ovvero 
la compressione la esegue pegasus dopo che uno ha cancellato 20000 
caratteri, quindi quando si importano i messaggi in hamster con 
ham.exe, vengono importati anche quelli vecchi, gia' importati e poi 
cancellati.
Mentre per i folder nel formato Pegasus Mail v2.x c'e' la possibilita' di 
compattarli manualmente (Recover deleted space), non ho trovato altrettanto 
per i folder in formato unix.
Qualcuno sa come si possono comprimere i folder in formato unix con 
pegasus?
Grazie 
Sandro