Homepage  Il progetto dsy.it è l'unofficial support site dei corsi di laurea del Dipartimento di Scienze dell'Informazione e del Dipartimento di Informatica e Comunicazione della Statale di Milano. E' un servizio degli studenti per gli studenti, curato in modo no-profit da un gruppo di essi. I nostri servizi comprendono aree di discussione per ogni Corso di Laurea, un'area download per lo scambio file, una raccolta di link e un motore di ricerca, il supporto agli studenti lavoratori, il forum hosting per Professori e studenti, i blog, e molto altro...
In questa sezione è indicizzato in textonly il contenuto del nostro forum


.dsy:it. .dsy:it. Archive > Didattica > Corsi N - Z > Reti di calcolatori
 
[PROGETTO] Client per la ricezione di Email (POP3)
Clicca QUI per vedere il messaggio nel forum
0m4r
La mia intenzione è quella di realizzare un client per la ricezione della posta elettronica utilizzando il POP3, come indicato nelle specifiche del proogetto.

Ho però delle domande:


1) l'istruzione LIST permette di ricevere dal server di posta l'elenco dei messaggi indirizzati all'utente con l'indicazione del loro "peso" in "octet". Cosa si intende per octet?

2) Sempre l'istruzione LIST può essere utilizzata passandogli come argomento il numero del messaggio cui si è interesati a visualizzarne le informazioni.
Esempio
Cleint: LIST 2
Server: +OK 2 200
In realtà, io con la classe da me scritta in Java, alla richiesta del client ottengo:
Client: LIST 2
Server: +OK 3 800
Server: +OK 2 200
supponendo che il server contenga 3 messaggi indirizzati a me dal "peso" complessivo di 800. Per quale motivo ottengo questa risposta? (ho fatto test sui server di posta di virgilio, tin.it e libero ottenendo pressochè gli stessi risultati).

3) Il client deve "decifrare" anche gli allegati contenuti nel messaggio come per esempio immagini o veri e propri files allegati alla mail?

D.M.
Originally posted by 0m4r
La mia intenzione è quella di realizzare un client per la ricezione della posta elettronica utilizzando il POP3, come indicato nelle specifiche del proogetto.

Ho però delle domande:


1) l'istruzione LIST permette di ricevere dal server di posta l'elenco dei messaggi indirizzati all'utente con l'indicazione del loro "peso" in "octet". Cosa si intende per octet?


la dimensione in byte

generalmente octet e' un sinonimo di byte



2) Sempre l'istruzione LIST può essere utilizzata passandogli come argomento il numero del messaggio cui si è interesati a visualizzarne le informazioni.
Esempio
Cleint: LIST 2
Server: +OK 2 200
In realtà, io con la classe da me scritta in Java, alla richiesta del client ottengo:
Client: LIST 2
Server: +OK 3 800
Server: +OK 2 200
supponendo che il server contenga 3 messaggi indirizzati a me dal "peso" complessivo di 800. Per quale motivo ottengo questa risposta? (ho fatto test sui server di posta di virgilio, tin.it e libero ottenendo pressochè gli stessi risultati).



prova la stessa sequenza di operazioni nel caso di

1 - nessun messaggio
2 - un messaggio
3 - due messaggi
4 - tre messaggi

e vedi le differenze nell' output

potrei anche supporre delle implementazioni non standard, ricordiamoci che questa gente usa IIS generalmente.



3) Il client deve "decifrare" anche gli allegati contenuti nel messaggio come per esempio immagini o veri e propri files allegati alla mail?



NO

Ricordati di lare il posting della "soluzione", puo' essere utile per gli altri.

D.

0m4r
per posting della soluzione intendi "il codice"?

D.M.
ovviamente NO

una spiegazione di quello che succede e la descrizione dell'errore che facevi.

in questo modo anche gli altri sapranno come NON funziona.

D.

0m4r
allungo l'elenco delle domande:

4) Facendo un tentativo di connessione con password errata, l'istruzione (è corretto chiamarla cosi?) QUIT (quella definita per il protocollo POP3) nn ritorna alcuna stringa a comunicare la disconnessione dal server; se invece faccio lo stesso tentativo con lo username e la password errati tutto fila liscio. Esiste una spiegazione (supponendo che non ci siano errori nel mio codice)?

D.M.
Le specifiche del protocollo non dicono nulla a riguardo ?

In generale, se riscontri una anomalia e' bello dimostrare che si tratta effettivamente di un comportamento sbagliato, ad esempio, riportare le 3 righe dell' RFC in cui si dice che il comportamento e' XYZ, mentre l'output del tuo programma dimostra che il server fa KJW.

D.

0m4r
Originally posted by 0m4r

2) Sempre l'istruzione LIST può essere utilizzata passandogli come argomento il numero del messaggio cui si è interesati a visualizzarne le informazioni.
Esempio
Cleint: LIST 2
Server: +OK 2 200
In realtà, io con la classe da me scritta in Java, alla richiesta del client ottengo:
Client: LIST 2
Server: +OK 3 800
Server: +OK 2 200
supponendo che il server contenga 3 messaggi indirizzati a me dal "peso" complessivo di 800. Per quale motivo ottengo questa risposta? (ho fatto test sui server di posta di virgilio, tin.it e libero ottenendo pressochè gli stessi risultati).


problema risolto, mio errore nella scrittura del codice che stampa i messaggi ricevuti dal server di posta!

0m4r
un altra domanda


5) il programma deve implementare tutte le istruzioni del protocollo POP3 o solo quelle atte a soddisfare le richieste del progetto?

D.M.
Mettiamola così:

Per passare l'esame bastano quelle richieste!

È possibile riuscire a prendere 30 anche con il set minimo di funzionalità richieste, però devono essere fatte bene.

Se realizzate anche tutte le altre potrebbe darsi che io diventi più elastico nel giudizio.

Il mio consiglio, comunque, è di capire cosa riuscite a fare e puntare a quello.

D.

0m4r

6) I server di posta elettronica dopo un certo periodo di connessione da parte di un utente si "scollegano" automaticamente?

D.M.
dalla pagina 3 (tre) dell'rfc del POP v3

A POP3 server MAY have an inactivity autologout timer. Such a timer
MUST be of at least 10 minutes' duration. The receipt of any command
from the client during that interval should suffice to reset the
autologout timer. When the timer expires, the session does NOT enter
the UPDATE state--the server should close the TCP connection without
removing any messages or sending any response to the client.


D.

0m4r
Grazie della risposta; ora però mi sorge un'altra domanda:


6a) potrebbe essere una soluzione fare eseguire delle NOOP ad intervalli regolari per mantenerla connessione oltre il tempo massimo di inattività?

D.M.
Si, ma ti serve davvero ?

D.

0m4r

Come posso provare il mio client in silab dato che, a quanto pare e a quanto ho potuto capire usando telent, che la porta 110 nn mi è permesso utilizzarla?



qui in silab ottengo questo errore e da casa nn l'ho mai visto:

java.net.SocketException: Software caused connection abort: socket write error

Powered by: vbHome (lite) v4.1 and vBulletin v2.3.1 - Copyright ©2000 - 2002, Jelsoft Enterprises Limited
Mantained by dsy crew (email) | Collabora con noi | Segnalaci un bug | Archive | Regolamento |Licenze | Thanks | Syndacate