HTML2POP3
-----------------
By Matteo Baccan (www.baccan.it)
--------------------------------------
Quando ci si trova dietro ad un proxy aziendale, o quando ci si trova
nella condizione in cui le porte POP3, SMTP o NNTP sono state chiuse
all'interno di un'azienda, ci si puo' trovare nell'impossibilita' di
scaricare e inviare della posta tramite Outlook o tramite un qualsiasi
client di posta che utilizza il protocollo POP3, SMTP e NNTP.
Per questa ragione, ho scritto, sulla falsariga di altri programmi
simili per Hotmail o Yahoo, un server POP3, SMTP e NNTP, in grado di
discriminare una richiesta entrante e fornire un servizio POP3, SMTP e
NNTP, interfacciando le interfacce HTTP dei server di posta elettronica
e dei server HTTP in grado di fare da proxy SMTP e NNTP.
In principio questo programma era nato per libero.it, ma, col passare
del tempo, sono nate una serie di altre esigenze, che mi hanno portato
ad una sua evoluzione e a considerare la possibilita' di gestire a
plugin il server POP3, SMTP e NNTP, in modo da poterlo estendere a tutta
un altra serie di portali.
Al momento e' infatti possibile interfacciarsi a libero.it, inwind.it,
blu.it, iol.it e infinito.it etc etc, ma molti altri plugin sono in
preparazione.
Inoltre, per il fatto che, molte volte ci si trova dietro ad un server
proxy, ho provveduto anche a gestire questo tipo di connessione.
Dato che non si sa mai, ho provveduto a riempire il programma di flag
in modo che la posta non vada mai perduta e sia comunque possibile
gestire dei backup o usare il programma in modalita' sicura.
Per questa ragione, ho abilitato un flag per disabilitare, in modo
globale il delete dei messaggi, in modo da evitare eventuali problemi
di cancellazioni indesiderate. Oltre ad un altro flag per poter avere
in attach la pagina html che traduco in messaggio POP3, nel caso di
mail emulate.
Se pero' non vi fidate proprio, ricordatevi che programmi come il mio
lavorano in emulazione di una casella POP3 che non esiste, vi consiglio
di gestire la posta, mantenendo una copia dei messaggi sul server.
In alternativa potere abilitare il flag:
"Conserva una copia dei messaggi sul server"
in modo che il client di posta non cancelli i dati dal server e ne
mantenga una copia.
HTML2POP3 e' stato scritto in Java 1.4.2, anche se penso che sia
utilizzabile anche su versioni meno recenti di JDK, ma non avendo fatto
dei test non ne ho una certezza matematica.
Usate questo programma con Linux, Windows, AIX, Sun Solaris o tutti gli
ambienti che riterrete opportuni
Inoltre, in caso di vostre estensioni, sarei felice di poterle ricevere
per poterle integrare nelle nuove release di HTML2POP3, sapendo che
comunque sara' sempre dato tutto in sorgente.
Caselle di posta attualmente supportate
=======================================
Aliceposta.it Blu.it Cicciociccio.com Clarence.com Email.it
Fastwebnet.it Freemail.it Freeweb.org Hotmail.com IOL.it InWind.it
Infinito.it genie.it Libero.it Mp4.it Mybox.it Superdada.com Supereva.it
supersonic.it dadacasa.com concento.it clarence.com Tim.it Tin.it
Tiscali.it tele2.it e indirettamente qualsiasi server pop3: a-ice.aero
abes.it aliceposta.it allmediasolution.com altevie.com arpa.sicilia.it
aruba.it asp.it bangladesh.net bccsanteramo.it bmsitalia.com bonbon.net
bsc.it cleffe.it coldiretti.it comm2000.it deejaymail.it
drinkpinkonline.com ecom.it ecorete.it edimedia.com ekar.it email.it
excite.it fastwebnet.it finsa.it freepass.it gmx.net gruppoacsi.com
hotmail.com ilgiornaledicinisi.it infinito.it infomedia.it
interfree.it istruzione.it itstaff.it jumpy.it katamail.com lifegate.it
lifegate.it lillinet.org lokisrl.com net2b.pt netcomsolution.it
next.dom next.it oksatcom.it poste.it postino.it preito.com quipo.it
ragionieri.com ribesinformatica.it rocchelli.net sicilyonline.it
simail.it squalex.com techedge.it tecredo.com templarios.com tim.it
tin.it tiscali.it topconsulting.it toughguy.net trim.it uniroma2.it
vodafone.it wappi.com wind.it wisyprod.com yahoo.it studioluraghi.it
et cetera et cetera
Versioni possibili
==================
HTML2POP3 e' disponibile in due versioni completamente diverse.
La prima dal nome html2pop3???.zip dove al posto di ??? e' presente un
numero di versione, come protrebbe essere html2pop3120.zip. Questa
versione e' compilata con il JDK SUN ed e' ideale per qualsiasi sistema
operativo, dispone di tutte le funzionalita' possibili, ha una GUI in
grado di configurarne le opzioni e un codice ottimizzato per quanto
riguarda le connessioni.
La seconda ha il nome identico, con l'aggiunta di suffisso win32:
html2pop3???win32.zip, come potrebbe essere html2pop3120win32.zip Questa
seconda versione e' compilata con il JDK Microsoft, e non quello SUN,
come la versione portabile, per tale ragione dispone di un EXE. Questa
versione funziona solo in ambienti Windows dotati di JVM Microsoft. Dato
che, fino a prima di Windows XP, qualsiasi Windows aveva una JVM
Microsoft, basta scaricare il programma ed utilizzarlo. Con XP e'
invece necessario scaricare la JVM Microsoft
(http://www.baccan.it/opensource/msjavx86.exe) prima di utilizzarlo per
evitare l'errore di "interfaccia non registrata"
In base alla versione che avete scaricato occorre quindi seguire un
tutorial diverso
Istruzioni per l'installazione della versione portabile
=======================================================
La versione portabile, essendo pensata per tutte le piattaforme
non possiede un file di installazione, ma e' composta da un semplice
zip con dentro tutto quello che serve per funzionare.
Inoltre i settaggi che sono stati messi di default dovrebbero andare bene
per tutte le piattaforme esistenti.
Una volta installato si puo' cosi passare direttamente a configurare
il programma di posta.
Da notare che HTML2POP3 e' pensato come se fosse un server, puo'
quindi supportare tranquillamente il carico parallelo di piu' macchine
presenti in una rete aziendale.
----------------
Ambiente Windows
----------------
1) scaricate l'ultima versione di HTML2POP3 (html2pop3???.zip) dal sito
http://www.baccan.it
2) decomprimete il tutto in una nuova cartella (es c:\programmi\html2pop3)
3) eseguite il file html2pop3.bat
4) Se a schermo appare la schermata del programma riducetelo a icona (senza
chiuderlo) e avete terminato
La schermata che dovrebbe apparirvi e' simile a questa
http://www.baccan.it/opensource/html2pop3.jpg
Altrimenti vi verra' dato un errore tipo "file javaw.exe mancante".
Scaricate ed installatevi le Java Runtime Environment (JRE) dal seguente
link: http://java.sun.com/webapps/download/AutoDL?BundleId=8939, oppure
direttamente dal sito sun http://java.sun.com
Le istruzioni per installare le JRE fate clic sul link qui sotto:
http://www.java.com/it/download/help/win_manual.jsp
------------
Ambiente MAC
------------
Questo esempio e' scritto su Panther. Si rigrazia Davide per il gentile
supporto
1) scaricate l'ultima versione di HTML2POP3 (html2pop3???.zip) dal sito
http://www.baccan.it
2) scompattatelo in una directory della vostra *home* (es. ~/Applications)
3) Aprite il terminale e spostatevi all'interno della cartella che avete
appena scompattato.
4) nel terminale scrivete "sudo java -cp html2pop3.jar htmlgui" (senza
virgolette, ovviamente...)
5) Aspettate e si presentera' l'interfaccia del programma
6) Sostituite la stringa "locahost" con 127.0.0.1
7) Premete il tastone "restart"
8) A questo punto potete continuare seguendo le istruzioni che sono
allegate al programma, l'unica cosa che cambia e' dove Baccan dice di
usare locahost mettete 127.0.0.1 .
D'ora in poi vi bastera' avviare il programma con il comando dal
terminale che trovate al punto 4.
Per automatizzare il tutto io ho fatto un piccolo applescript e l'ho
salvato come applicazione e messo in avvio al login
Vi posto LA riga dello script, a questo punto passo la mano a qualcuno
piu' esperto di applescript (io lo conosco a malapena) in grado di
migliorarlo
Ecco la riga:
do shell script "sudo java -cp <
>/html2pop3.jar htmlgui"
password "<>" with administrator privileges
-------------
Ambiente OS/2
-------------
1) scaricate l'ultima versione di HTML2POP3 (html2pop3???.zip) dal sito
http://www.baccan.it
2) decomprimete il tutto in una nuova cartella (es c:\programmi\html2pop3)
3) Scaricate java runtime 1.4.2
http://download.innotek.de/javaos2/142_01/install.exe
4) trasformare il .bat in .cmd
rem html2pop3.cmd
@echo off
:: server con la GUI
set HLIB=html2pop3.jar;httpclient.jar;httpmail.jar;xercesImpl.jar;xmlParserAPIs.jar
start D:\java142\bin\javaw.exe -cp %HLIB% htmlgui
dove d:\java142\etc etc e' il percorso dove avere installato java
5) eseguite il file html2pop3.cmd
A questo punto tutto dovrebbe andare
--------------
Ambiente Linux
--------------
1) scaricate l'ultima versione di HTML2POP3 (html2pop3???.zip) dal sito
http://www.baccan.it
2) decomprimete il tutto in una nuova cartella
3) Scaricate java runtime 1.4.2
4) Modificate il file html2pop3.sh, mettendo il percorso dove avete
installato html2pop3 e java
5) Eseguite tramite sh lo script di partenza
sh html2pop3.sh start
altrenativamente potete fare dare i permessi di esecuzione allo script con
chmod ug+x html2pop3.sh
metterlo nel PATH (`echo $PATH` per vedere qual'e` il PATH) e eseguirlo
semplicemente scrivendo
html2pop3.sh start
Istuzioni per l'installazione della versione Win32 - solo Windows
=================================================================
1) scaricate l'ultima versione di HTML2POP3 (html2pop3???win32.zip) dal sito
http://www.baccan.it
2) decomprimete il tutto in una nuova cartella (es c:\programmi\html2pop3win32)
3) eseguite l'exe html2pop3.exe
4) Se sulla barra delle applicazioni appare un'icona con una I, allora il
programma e' installato correttamente e avete terminato
Altrimenti vi verra' dato un errore tipo "interfaccia non registrata"
Scaricate ed installatevi la Microsoft Java Virtual Machine dal seguente link:
La VM Microsoft e' scaricabile da questa pagina
http://www.baccan.it/opensource/msjavx86.exe
una volta installata dovrebbe andare tutto a posto
Controlli comuni
================
Per varie ragioni, il programma potrebbe non riuscire a partire correttemente.
Per questo motivo si consiglia sempre di controllare il file html2pop3.log
e guardare che non ci siano problemi. In caso di problemi e' normalmente indicata
la soluzione o comunque e' indicata nel file readme.txt
Utilizzo della versione POP3
============================
1) Aprite il vostro Outlook Express, o il vostro programma di posta
preferito
2) In Strumenti->Account->(nome account)->Proprieta'->Server->Posta in
entrata (POP3) inserite "localhost" (senza le virgolette), mentre in
Posta in uscita lasciate il server SMTP del vostro provider.
3) Se, per qualsiasi ragione, avete dovuto cambiare la porta di
funzionamento di HTML2POP3, passando dalla 110 a qualcos'altro, ad
esempio 111, ricodatevi di aggiornare questa parametro sotto
Outlook->strumenti->account->(nome account)->Impostazioni
avanzate->Posta in arrivo
4) HTML2POP3 utilizza il nome dell'account di posta, per capire quale
webmail deve essere utilizzata. Per questo motivo e' importante mettere
sempre l'email completo come nome dell'account che si intende
controllare
Ad esemipio: se avere la posta su libero.it, potere mettere, come
account
?????????@libero.it
dove al posto di ???????? indicherete il vostro email, oppure potete
forzare l'utilizzo di una certa casella di posta, indicando il nome
del plugin da utilizzare, prima dell'account di posta:
libero.it;????????@libero.it
in questo modo indicate che, qualsiasi cosa sia scritta, occorre
utilizzare il plugin libero.it
Alla luce di questo, sono impostazioni valide
pippo@libero.it
libero.it;pippo@libero.it
ma non
pippo
in questo caso non c'e' il modo di sapere quale gestore di posta
usare e HTML2POP3 si limita ad usare il default che e' libero.it
A questo punto siete in grado di utilizzare liberamente la posta
esattamente come facevate prima.
NOTA: NON chiudete mai HTML2POP3, altrimenti il vostro programma di
posta non puo' scaricare la posta
Per avere un esempio di come configurare questi flag guardate
il file html2pop3config1.jpg e html2pop3config2.jpg
Utilizzo della versione SMTP
============================
Dalla versione 2.00 e' possibile utilizzare html2pop3 come server SMTP,
basta configurare il proprio client nel seguente modo
Server SMTP : localhost, o l'indirizzo che avete configurato
Porta SMTP : 25, o la porta che avete configurato
Facendo solo questi due settaggi, viene utilizzata una tecnica di
tunneling HTTP. La posta viene incapsulata in una chiamata HTTP e
inviata al server baccan.it tramite un POST. Da baccan.it viene poi
chiamato il server SMTP interno per l'invio effettivo della posta.
Se pero' non si vuole usare il server SMTP di baccan.it, ma si vuole
solo usare baccan.it per il tunneling della posta, e' possibile
indicare a quale altro server SMTP inviare il messaggio.
Per fare questo occorre aggiungere l'autentificazione sul server SMTP e
usare la seguente tecnica
Login : smtp;la vostra login;server smtp[;porta smtp[;server delle pagine php]]
Password: la vostra password
in questo modo, l'invio avverra' verso il server "server smtp" sulla
porta "porta smtp" e le pagine contattate in modalita' POST saranno su
"server delle pagine php"
Tanto per avere un esempio. Per far fare l'invio con virgilio, possiamo
scrivere
smtp;TUA_EMAIL@virgilio.it;smtp.virgilio.it
oppure
smtp;TUA_EMAIL@email.it;smtp.email.it
la mail verra' inviata a baccan.it che la rimandera' a virgilio, in modo
del tutto trasparente.
Non ancora contenti e' possibile fare anche
smtp;TUA_EMAIL@virgilio.it;smtp.virgilio.it;25;http://TUO_SERVER/pagine_php
per fare in modo che, al posto di contattare baccan.it, venga contattato
il server web http://TUO_SERVER/pagine_php. Chiaramente al posto di "TUO_SERVER"
e di "pagine_php" occorre immettere un valore adeguato.
Per fare un esempio, io ho messo le pagine su www.baccan.it nella directory
pop3. Quindi un indirizzo valido e'
http://www.baccan.it/pop3
Per vedere come configurare l'invio SMTP guardate i file html2pop3smtp1.jpg
e html2pop3smtp2.jpg
ATTENZIONE: se non usate un vostro server per mettere le pagine PHP che
ho reso disponibili con HTML2POP3, e usate baccan.it, vi arrivera' una
mail giornaliera che vi avvisa dell'uso del servizio gratuito. La mail
si puo' eliminare semplicemente mettendo le pagine su un vostro server che
esegue PHP e puntando quel server al posto di baccan.it, come indicato
qualche riga sopra.
NB: baccan.it non memorizza il vostro indirizzo di email per capire se
e' la prima mail che inviate nella giornata, ma il crypt della mail. In
questo modo nessun dato sensibile e' registrato, dato che crypt non e'
reversibile e non si puo' quindi tornare alla stringa che ha generato
quel crypt. Potete analizzare il codice guardando il file phpproxy.zip
allegato a HTML2POP3.
IMPORTANTE: se avete un server SMTP a disposizione, usatelo, al posto
di usare il tunnel su baccan.it, dato che, per problemi di SPAM, ho
dovuto mettere dei filtri su dimensione e numero di destinatari, quindi
risulta molto piu' veloce e sicuro un server SMTP al posto del tunnel
su baccan.it
Utilizzo della versione NNTP
============================
Dalla versione 2.10 e' possibile utilizzare html2pop3 come server NNTP,
basta configurare il proprio client nel seguente modo
Server NNTP : localhost, o l'indirizzo che avete configurato
Porta NNTP : 119, o la porta che avete configurato
a questo punto HTML2POP3 permettera' di utilizzare i newsgroup nelle
situazioni in cui non si abbia a disposizione un server NNTP
Il meccanismo si basa sull'interfacciamento di Google e la trasformazione
delle pagine HTTP in messaggi NNTP validi.
Quando il client chiede l'elenco dei gruppi viene restituita la lista
presente in
nntp.cfg
Questo file e' modificabile a piacere.
Fatto questo, quando il client di posta chiede un nuovo gruppo
GROUP nome_del_gruppo
il programma accede a google sulla pagina riassuntiva di nome_del_gruppo
A quel punto prende tutti gli ID dei messaggi, e, dove presenti dei thread
segue il thread per prenderne i messaggi che lo compongono.
Una volta che ha la lista degli ID dei messaggi, procede al loro
download, utilizzando una cache posta nella directory
nntpcache\nome_del_gruppo
in questo modo, successive richieste dello stesso messaggio non lo scaricano
nuovamente. Questa opzione e' particolarmente utile in ambito di rete, dove
piu' persone utilizzano una sola istanza di HTML2POP3.
Una volta che ha i messaggi, li numera in modo progressivo, memorizzando
la numerazione in un file chiamato
nntpcache\nome_del_gruppo\id-cache.cache
in questo modo, successivi download utilizzeranno le id del file id-cache.cache
e non andranno a mischiare nuovi messaggi con vecchi messaggi, dato che
il protocollo NNTP si basa sulla numerazione del messaggi e non sul loro ID
Dato che il primo giro di download dei messaggi puo' essere lento, la
procedura migliore e' quella di aumentare il timeout da 1 a 5 minuti.
I successivi aggiornamenti dovrebbero essere piu' veloci, sfruttando il
sistema di cache.
In realta' ci potrebbero essere ulteriori ritardi, introdotti dal modo col
quale i clienti NNTP gestiscono l'interfacciamento del server NNTP.
Nelle prossime release aumentero' le performance del programma
ATTENZIONE: non e' stato implementato il POST su newsgroup, ma solo la lettura
Integrazione con altri programmi
================================
-----------
Spamhilator
-----------
Questo piccolo tutorial e' stato scritto per permettere a chi usa
Spamhilator come filtro anti-spam e outlook express come client di posta
elettronica,di utilizzare contemporamente anche l'ottimo html2pop3..
Per far convivere i due programmi occorre fare qualche piccola modifica
che vado a spiegare;
1) Impostare Html2pop3 su:
server: localhost
porta: 111
2) Spamhilator non deve essere toccato (rimane quindi sulla porta 110)
3) In outlook express modificate come segue il vostro account email:
cliccate su STRUMENTI>ACCOUNT>POSTA ELETTRONICA
scegliete l'account da modificare e evidenziate SERVER
a questo punto la situazione dovrebbe essere:
posta in arrivo (pop3): localhost
posta in uscita (SMTP): vostro_smtp_server
nome account: localhost&TUA_EMAIL@libero.it&111
esempio pratico: localhost&pippo@libero.it&111
password: vostra_password
e il gioco e' fatto!
A questo punto html2pop3 passa la posta a spamhilator che la filtra e la
restituisce a outlook express.
Ovvia ... ...