Salve a tutti,
sto cercando di sviluppare una rudimentale applicazione che vada a connettersi ad un server POP3 e mi recupera le e-mails.
Uso un System.Net.Sockets.TcpClient per connettermi al server pop3 e un System.Net.Sockets.NetworkStream per scambiare i dati (inviarli e leggere le risposte del server).
Il problema che devo risolvere mi si presenta solo con alcuni server Pop3 e non su tutti, avviene che la risposta di questi server contiene qualche carattere strano che non riesce ad essere convertito correttamente in ascii, la conversione la effettuo in questo modo:
miavariabile = Encoding.ASCII.GetString(bytes)
dove bytes è una variabile Byte riempita con i dati di risposta contenuti dal NetworkStream e miavariabile è una variabile string dove vengono immagazzinati i dati di risposta del server (quindi l'email) in formato stringa.
In particolare avviene che i caratteri ascii superiori a 127 vengano convertiti in "?" punti interrogativi, ma alcuni server rispondono in modo tale che l'encoding funziona, altri no restituiscono solo una serie si ???????????????????? molto lunga.
Cosa molto importante che ho notato sui server che rispondono "male" è che se associo al NetworkStream un Streamwriter e scrivo il contenuto in un file di testo, i caratteri vengono scritti correttamente nel file di testo. Il mio scopo è farli scrivere bene in un Db mysql, devo usare una sorta di scrittura con uno stream? Visto che con lo streamwriter per i files funziona, oppure c'è un altro modo per effettuare una conversione che funzioni?
Spero di essere stato chiaro e avervi fornito le informazioni per potermi aiutare
Saluti


Rispondi quotando
