Проблема с кодировкой входящих писем. почтовый клиент. приём почты. POP3. - C#
Формулировка задачи:
Скачал класс ( прогу в коде ) POP3 стороннего разработчика для приемё писем. http://www.codeproject.com/KB/IP/despop3client.aspx? Подключаюсь к почте, могу узнать количество входящих сообщений, и их заголовки и письмо на английском и размер. Если же заголовок или письмо в кирилице, то принимаем иероглифы. Это было у разработчика в оригинале .
Получает номер сообщения и начинает его принимать в темп, если я правильно понял.
Погуглив думал проблема решиться с помощью декодировки. Но не могу понять как и где использовать Помогите разобраться с этим декодером. Ковырялся долг и нудно. И в разных кодировках. Кстати м ещё тот факт что письма тоже приходят в разных кодировках. В принципе это курсач - может прокатит и если тема будет на латинице и письмо на латинице, но всё таки может кто нибудь поможет.
public string RETR (int msg)
{
string temp="";
if (state != connect_state.TRANSACTION )
{
//the pop command RETR is only valid in the TRANSACTION state
temp="Connection state not = TRANSACTION";
}
else
{
// retrieve mail with number mail parameter
issue_command ("RETR "+ msg.ToString ());
temp=read_multi_line_response();
}
return(temp);
}System.Text.Encoding.GetEncoding(1251).GetBytes (Strings)
Решение задачи: «Проблема с кодировкой входящих писем. почтовый клиент. приём почты. POP3.»
textual
Листинг программы
private string Response()
{
System.Text.ASCIIEncoding oEncodedData = new System.Text.ASCIIEncoding();
byte[] ServerBuffer = new Byte[1024];
NetworkStream NetStream = GetStream();
int count = 0;
// считываем данные из сетевого потока сервера и помещаем их в буфер (чтобы потом декодировать)
while (true)
{
byte[] buff = new Byte[2];
int bytes = NetStream.Read(buff, 0, 1);
if (bytes == 1)
{
ServerBuffer[count] = buff[0];
count++;
if (buff[0] == '\n')
{
break;
}
}
else
{
break;
}
}
// Возвращаем декодированное строковое ASCII-значение
string ReturnValue = oEncodedData.GetString(ServerBuffer, 0, count);
return ReturnValue;
}