Проблема с кодировкой входящих писем. почтовый клиент. приём почты. POP3. - C#

Узнай цену своей работы

Формулировка задачи:

Скачал класс ( прогу в коде ) POP3 стороннего разработчика для приемё писем. http://www.codeproject.com/KB/IP/despop3client.aspx? Подключаюсь к почте, могу узнать количество входящих сообщений, и их заголовки и письмо на английском и размер. Если же заголовок или письмо в кирилице, то принимаем иероглифы. Это было у разработчика в оригинале
Листинг программы
  1. public string RETR (int msg)
  2. {
  3. string temp="";
  4. if (state != connect_state.TRANSACTION )
  5. {
  6. //the pop command RETR is only valid in the TRANSACTION state
  7. temp="Connection state not = TRANSACTION";
  8. }
  9. else
  10. {
  11. // retrieve mail with number mail parameter
  12. issue_command ("RETR "+ msg.ToString ());
  13. temp=read_multi_line_response();
  14. }
  15. return(temp);
  16. }
. Получает номер сообщения и начинает его принимать в темп, если я правильно понял. Погуглив думал проблема решиться с помощью декодировки. Но не могу понять как и где использовать
Листинг программы
  1. System.Text.Encoding.GetEncoding(1251).GetBytes (Strings)
Помогите разобраться с этим декодером. Ковырялся долг и нудно. И в разных кодировках. Кстати м ещё тот факт что письма тоже приходят в разных кодировках. В принципе это курсач - может прокатит и если тема будет на латинице и письмо на латинице, но всё таки может кто нибудь поможет.

Решение задачи: «Проблема с кодировкой входящих писем. почтовый клиент. приём почты. POP3.»

textual
Листинг программы
  1.  private string Response()
  2.             {
  3.                 System.Text.ASCIIEncoding oEncodedData = new System.Text.ASCIIEncoding();
  4.                 byte[] ServerBuffer = new Byte[1024];
  5.                 NetworkStream NetStream = GetStream();
  6.                 int count = 0;
  7.                 // считываем данные из сетевого потока сервера и помещаем их в буфер (чтобы потом декодировать)
  8.                 while (true)
  9.                 {
  10.                     byte[] buff = new Byte[2];
  11.                     int bytes = NetStream.Read(buff, 0, 1);
  12.                     if (bytes == 1)
  13.                     {
  14.                         ServerBuffer[count] = buff[0];
  15.                         count++;
  16.                         if (buff[0] == '\n')
  17.                         {
  18.                             break;
  19.                         }
  20.                     }
  21.                     else
  22.                     {
  23.                         break;
  24.                     }
  25.                 }
  26.                 // Возвращаем декодированное строковое ASCII-значение
  27.                 string ReturnValue = oEncodedData.GetString(ServerBuffer, 0, count);                
  28.                 return ReturnValue;
  29.             }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 4.375 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы