Nome del progetto: MyMail
Autori:
Pietro Delsante, matricola 143100
Andrea Camurri, matricola 143769
Luca Pinciani, matricola 143850

URL del progetto: http://spaw.ce.unipr.it/progetti/mymail/
Nome dell’insegnamento: Strumenti per applicazioni Web.
Data ultima revisione: 15 settembre 2005.

Figura 1: introduzione al sito

Modalità d’uso del sito
MyMail è un programma web based che serve per leggere la propria posta elettronica, indipendentemente dal server che la ospita, sfruttando il protocollo POP3. Interessante il fatto che permette ad ogni utente di configurare più caselle e-mail e di controllarle tutte in maniera semplice, veloce e soprattutto indipendentemente dalla piattaforma hardware e software da cui ci si collega, purché supporti l’HTML versione 4.
Il sito si apre con la pagina di introduzione (vedi Fig.1) che ha il compito di dare il benvenuto all’utente.
Da questa si può accedere al sito vero e proprio cliccando o sulla scritta intuitiva sulla destra o sul link “Skip intro” visibile anche senza il supporto a Flash.

Figura 3: registrazione nuovo utente

Figura 2: login al sistema

Dopo la presentazione arriviamo quindi alla pagina principale di login al sistema (vedi Fig.2), da cui è possibile autenticarsi e accedere alle proprie caselle di posta. Al primo accesso è necessario creare un nuovo utente tramite il link in basso sulla pagina. I dati necessari sono uno username, case insensitive, che deve essere univoco tra tutti gli utenti registrati. Nel caso in cui lo username sia già in uso viene mostrato un errore e ripresentata la pagina in cui gli altri campi vengono precompilati con i dati precedentemente inseriti. Si deve quindi inserire una e-mail principale e una password per l’accesso. Questa schermata di registrazione è visibile in figura 3.
Dalla pagina di login si può richiedere l’invio della password d’accesso nell’eventualità che si fosse dimenticata. Come già accennato, in fase di registrazione si è specificata una casella e-mail “principale”, sulla quale verrà inviata una e-mail con l’indicazione della password richiesta attraverso l’apposito modulo (Fig.4).
Dopo aver registrato un nuovo utente effettuiamo il primo accesso; il sistema, riconoscendo che non ci sono caselle di posta configurate per l’utente che si è autenticato, propone automaticamente la registrazione di una nuova casella (Fig.5).

Figura 6: menu principale

Figura 5: configurazione di una nuova casella di posta

Figura 4: recupero password dimenticata

Per la configurazione di una casella e-mail vengono richiesti un nome da assegnarle, l’indirizzo associato, il nome visualizzato quando si inviano e-mail, il server POP3 a cui collegarsi per leggere la posta e i dati username e password per l’accesso al POP3. Qui è d’obbligo spendere due parole in merito alle politiche adottate di recente dai più grossi ISP italiani: è diventata prassi inibire l’accesso via POP3 alle caselle e-mail da loro ospitate per renderlo possibile solo da propria rete, quindi configurando caselle e-mail su Libero o su Virgilio (due esempi qualsiasi) il nostro programma non sarà in grado di leggere la posta in quanto gira su un server collegato a rete esterna.
Arriviamo infine al menu principale, visibile in figura 6, che permette di avere un riepilogo dei messaggi presenti nelle varie caselle di posta registrate. Diagnostica anche eventuali errori di login dovuti a sviste nella configurazione dell’account.

Figura 7: lista e-mail

Tramite i 4 pulsanti presenti a fianco di ogni casella di posta è possibile rispettivamente: visualizzare i messaggi presenti, spedirne, modificare i dati di impostazione della casella, eliminare la casella (chiaramente dalla gestione del programma, la vera casella non viene alterata).
Andando a leggere i messaggi su una casella, ci verrà proposta la lista con tutti i messaggi (vedi come esempio Fig.7), ordinata per data di ricezione, specificando il mittente, la data e l’ora e l’oggetto. Si può cliccare sul mittente per rispondergli, sull’oggetto per leggere l’e-mail, oppure sul pulsante a destra per cancellare il singolo messaggio.
In caso di e-mail in formato HTML il programma si incarica in automatico di visualizzarle correttamente, compresi i link ad eventuali immagini. Inoltre sono stati gestiti correttamente gli allegati in ricezione, indicando al browser del client il MIME opportuno in fase di download.
Per quanto riguarda l’aspetto grafico, tutto il sito è stato progettato sfruttando i CSS così da avere, a parte una struttura visualizzativa fissa, la possibilità di modificare totalmente e rapidamente tutti i colori degli oggetti presenti. Sono infatti presenti 4 skin differenti che cambiano completamente l’aspetto grafico di tutte le pagine. Sono escluse soltanto la pagina di about e la pagina di introduzione che sono state stilizzate secondo il gusto specifico degli autori.
Ultima nota: si può cliccare sulla piccola scritta indicante il copyright in basso a destra su tutte le pagine per visualizzare una pagina di about indicante le informazioni sui programmatori del sito.
Strumenti utilizzati
La visualizzazione delle pagine è stata affidata al protocollo HTML v.4, steso con l’aiuto di strumenti visuali; nella fattispecie è stato utilizzato il programma Macromedia Dreamweaver, noto per la sua semplicità e immediatezza.
Lato server, la generazione delle pagine è stata affidata ad un unico script cgi (mymail.cgi), scritto in Perl v.5. Questo script si appoggia a vari moduli esterni, i più importanti e degni di nota sono il DBI, per l’accesso al database gestito da MySQL, i Net::POP3 e Net::SMTP, che si incaricano di gestire gli omonimi protocolli per l’accesso ai server email, i MIME::Base64::Perl e MIME::QuotedPrint che contengono funzioni per codificare nei vari standard MIME e infine i moduli per gestire la crittografia Crypt::CBC e Crypt::Blowfish, utilizzati per crittografare le password salvate. Il programma in Perl è stato scritto utilizzando l’ambiente di sviluppo Perl Builder 2.0 che si è dimostrato essere spartano ma decisamente funzionale. Il database è stato configurato attraverso il noto tool phpMyAdmin.
Tutta la parte progettuale e di primo debug si è svolta su macchine con sistema operativo Microsoft Windows XP, server Web Apache 2 per Windows, database MySQL 4.0.20 per Windows e interprete Perl ActivePerl 5.8.4.
Infine la pagina di presentazione si appoggia su un oggetto ActiveX generato da Macromedia Flash MX 5.0, strumento che permette di ottenere grafica vettoriale e animata per il Web in formato diffuso e contenuto in termini di dimensioni.
Suddivisione del lavoro tra gli studenti
Andrea Camurri:
•	Programmazione delle routine per l’invio delle e-mail.
•	Studio e realizzazione del database di gestione degli utenti e dei relativi account di posta.
•	Realizzazione della pagina di about.
•	Stesura della relazione di presentazione del sito.
•	Pubblicazione del sito sul server spaw.ce.unipr.it.
•	Pubblicazione della documentazione sul server ce.unipr.it.
Pietro Delsante:
•	Programmazione delle routine per la ricezione delle e-mail.
•	Studio degli header delle e-mail.
•	Gestione dei cookie di sessione per l’autenticazione dell’utente.
•	Progettata ma non del tutto realizzata una pagina amministrativa per la gestione degli utenti.
Luca Pinciani:
•	Generazione dell’html delle pagine del sito.
•	Studiato e curato gli aspetti grafici.
•	Realizzazione della pagine di introduzione.
•	Studio dei CSS e realizzazione del sistema skin.
Schema delle relazioni tra le routine
Segue nei fogli allegati uno schema rappresentante le relazioni tra le routine del programma.