Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - [C#] Client POP
Forum - C# / VB.NET - [C#] Client POP

Avatar
Alessandro Rimoldi (Normal User)
Newbie


Messaggi: 17
Iscritto: 11/03/2010

Segnala al moderatore
Postato alle 11:08
Giovedì, 29/04/2010
Buongiorno a tutti!

Devo realizzare un semplice Client POP che gestisca lo scario delle e-mail tramite SSL.

Ho guardato un pò on-line ma non ho trovato niente di interessante.

Avete qualche buon consiglio? :)

Grazie e buon lavoro!

Alessandro

PM Quote
Avatar
HeDo (Founder Member)
Guru^2


Messaggi: 2764
Iscritto: 21/09/2007

Segnala al moderatore
Postato alle 11:24
Giovedì, 29/04/2010

si, inizia a studiarti il protocollo pop3 http://en.wikipedia.org/wiki/Pop3
e da li studia l'estensione con SSL

quanto tutto ciò ti è ben chiaro, guarda cosa offre il framework in proposito e scrivi il programma :)


Ingegnere Informatico
https://ldlagency.it
PM Quote
Avatar
Alessandro Rimoldi (Normal User)
Newbie


Messaggi: 17
Iscritto: 11/03/2010

Segnala al moderatore
Postato alle 11:48
Giovedì, 29/04/2010
Perchè dai per scontato che non sappia come funziona il POP? :)

Comunque, la connessione via SSL sono riuscito ad implementarla; mi rimane solo da scaricare le e-mail.

Se hai qualche dritta... :asd:

PM Quote
Avatar
HeDo (Founder Member)
Guru^2


Messaggi: 2764
Iscritto: 21/09/2007

Segnala al moderatore
Postato alle 12:14
Giovedì, 29/04/2010


Ingegnere Informatico
https://ldlagency.it
PM Quote
Avatar
Alessandro Rimoldi (Normal User)
Newbie


Messaggi: 17
Iscritto: 11/03/2010

Segnala al moderatore
Postato alle 12:24
Giovedì, 29/04/2010
Forse sono pretenzioso; c'è qualcosa di "free"? E' possibile gestire il POP utilizzando solo le classi di .NET?

(Ri)Grazie! :)

PM Quote
Avatar
HeDo (Founder Member)
Guru^2


Messaggi: 2764
Iscritto: 21/09/2007

Segnala al moderatore
Postato alle 13:27
Giovedì, 29/04/2010


Ingegnere Informatico
https://ldlagency.it
PM Quote
Avatar
Alessandro Rimoldi (Normal User)
Newbie


Messaggi: 17
Iscritto: 11/03/2010

Segnala al moderatore
Postato alle 14:51
Giovedì, 29/04/2010
Rieccomi qui... :asd:

Sono riuscito ad aprire la connessione e a ottenere l'elenco di tutte le e-mail nel casella di posta (PEC).

Nel momento in cui ho l'ID dell'e-mail richiedo solo quell'e-mail al fine di memorizzarne il corpo in un file di testo da poter leggere successivamente.

Il codice che utilizzo è:

Codice sorgente - presumibilmente C++

  1. public Pop3Message Retrieve(int ID)
  2.         {
  3.             message = "RETR " + ID + "\r\n";
  4.             Write(message);
  5.             response = Response();
  6.         }
  7.  
  8.         private void Write(string message)
  9.         {
  10.             System.Text.ASCIIEncoding en = new System.Text.ASCIIEncoding();
  11.  
  12.             byte[] WriteBuffer = new byte[1024];
  13.             WriteBuffer = en.GetBytes(message);
  14.  
  15.             NetworkStream stream =  client.GetStream();
  16.             stream.Write(WriteBuffer, 0, WriteBuffer.Length);
  17.         }
  18.  
  19.         private string Response()
  20.         {
  21.             System.Text.ASCIIEncoding enc = new System.Text.ASCIIEncoding();
  22.             byte[] serverbuff = new Byte[1024];
  23.             NetworkStream stream = client.GetStream();
  24.             int count = 0;
  25.  
  26.             while (true)
  27.             {
  28.                 byte[] buff = new Byte[2];
  29.                 [b]int bytes = stream.Read(buff, 0, 1);[/b]
  30.                 if (bytes == 1)
  31.                 {
  32.                     serverbuff[count] = buff[0];
  33.                     count++;
  34.  
  35.                     if (buff[0] == '\n')
  36.                     {
  37.                         break;
  38.                     }
  39.                 }
  40.                 else
  41.                 {
  42.                     break;
  43.                 };
  44.             };
  45.  
  46.             string retval = enc.GetString(serverbuff, 0, count);
  47.             return retval;
  48.         }



L'esecuzione del comando che ho indicato in grassetto mi dà il seguente errore:

Impossibile leggere dati dalla connessione del trasporto: Connessione in corso interrotta forzatamente dall'host remoto.

Sapete dirmi come mai?

Grazie!

PM Quote