Проблема с кодировкой входящих писем. почтовый клиент. приём почты. 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;
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д