[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
|
|
|
|