3 pagine in totale: <<Indietro 1 [2] 3 Avanti >>
Se non avete ancora chiaro come funziona il collegamento potete provare a farlo "a mano" tramite un qualunque programma di telnet (va benissimo anche quello fornito con Windows e accessibile da riga di comando): aprite una shell MSDOS (esiste anche su XP, nessuna paura basta fare Start->Esegui e scrivere "cmd") e lanciate "telnet" (per avere un elenco dei comandi del telnet basta usare "?"), prima di tutto collegatevi al server di posta scrivendo:
o popmail.libero.it 110Se tutto funziona il server vi risponderà qualcosa del genere:
+OK POP3 PROXY Server Ready [?]Vuol dire che il collegamento è riuscito, così nella nella nostra pagina si recupera la risposta del server gestendo gli eventuali errori.
try
NetStream = tcpC.GetStream()
MyResponse = GetResponse(NetStream)
catch MyEx as Exception
lblMessaggi.Text += "Si è verificato un errore!"
end tryIniziamo quindi il collegamento come indicato nell'RFC 1939, cioè inserendo prima l'utente (preceduto dal comando "user") e subito dopo la password, preceduta dal comando "pass".
MyResponse = SendCommand(netstream,"user " & user & vbCrLF)
MyResponse = SendCommand(netstream,"pass " & pass & vbCrLf)Fate attenzione al fatto che alla fine di ogni comando viene aggiunto un ritorno a capo, questo per indicare al server che il comando è terminato e che può elaborarlo.
Se l'utente o la password non sono stati accettati e quindi non si è riusciti ad accedere alla casella di posta, (cioè se riceviamo una risposta "-ERR") restituiamo un messaggio di errore e interrompiamo il collegamento
if left(MyResponse,4)="-ERR" then
lblMessaggi.Text += "Errore nel collegamento dell'utente; controlla i dati e riprova<BR>"
lblMessaggi.Text += MyResponse & "<br>"
MyResponse=SendCommand(netstream,"QUIT" & vbCrLF)
tcpC.closealtrimenti indichiamo che l'utente è correttamente collegato
else
lblMessaggi.Text += "Utente correttamente collegato<BR><BR>"Da questo momento possiamo nviare i comandi al server che li processerà e ci restituirà di volta in volta una risposta preceduta da "+OK" se il comando ha avuto successo, oppure da "-ERR" se si verifica un errore.
I comandi che si possono inviare sono riportati in questa tabella:
| STAT | restituisce le statistiche della casella, cioè numero messaggi e spazio occupato |
| LIST [nmess] | accetta come argomento un numero di messaggio e restituisce lo spazio occupato |
| RETR nmess | recupera l'intero messaggio |
| DELE nmess | marca un messaggio per la cancellazione (che viene effettuata alla chiusura della connessione) |
| NOOP | non fa nulla, restituisce +OK (viene usato per evitare il timeout) |
| RSET | annulla la cancellazione dei messaggi fatta con DELE |
| QUIT | chiude la connessione con la casella ed elimina gli eventuali messaggi marcati per la cancellazione |
In questo esempio richiediamo solo le statistiche dell'intera casella di posta:
MyResponse=SendCommand(netstream,"stat" & vbCrLf)Riceveremo una risposta del tipo "+OK 3 54789". Facendo uno split avremo nel primo elemento (indice 0) "+O"' nel secondo il numero dei messaggi, nel terzo la dimensione totale dei messaggi in bytes:
dim tmpArray() as string
tmpArray = split(MyResponse," ")
dim thisMess as integer
dim NumMess as string = tmpArray(1)3 pagine in totale: <<Indietro 1 [2] 3 Avanti >>
Attenzione: Questo articolo contiene un allegato
Contenuti dell'articolo
Aggiungi un nuovo commento »»»
Per inserire un commento, devi registrarti alla nostra community.







Difficoltà
Utilità

Stampa
Download



