Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Проблемы с кодировкой


Nameziz ©   (2008-11-17 12:27:00) 

При получение писем некоторыми почтовыми серверами возникает проблема с кодировкой текста (кириллица) Вот код отправки:

var
 IdMessage: TIdMessage;
 IdSMTP: TIdSMTP;
begin
 IdSMTP := TIdSMTP.Create(Nil);
 try
   IdMessage := TIdMessage.Create(Nil);
   try
     IdMessage.Body.Add('Текс письма');
     IdMessage.From.Text := const_default_UserName;
     IdMessage.Subject := 'Тема';
     IdMessage.Recipients.EMailAddresses := 'xxx.mail.ru';
     IdMessage.Priority := mpNormal;
     IdSMTP.Host := 'mail.by';
     IdSMTP.Username := 'xxx';
     IdSMTP.Password := 'xxx';
     IdSMTP.Port := 25;
     IdSMTP.MailAgent := 'TestMailAgent';
     IdSMTP.AuthenticationType := atLogin;
     try
       IdSMTP.Connect(100);
       try
         IdSMTP.Send(IdMessage);
       finally
         IdSMTP.Disconnect;
       end;
     except
     end;
   finally
     IdMessage.Free;
   end;
 finally
   IdSMTP.Free;
 end;


Anatoly Podgoretsky   (2008-11-17 14:08:00) [1]

Должно получиться, что то подобное

Subject: =?koi8-r?B?UmU6IFJNTSDEz9DPzM7Fzs7Zyg==?=

Content-Type: text/html; charset="Windows-1251"
Content-Transfer-Encoding: 8bit


Anatoly Podgoretsky   (2008-11-17 13:59:00) [2]

> Nameziz  (17.11.2008 13:29:05)  [5]

Указать форматы


1. Формат заголовка
2. Кодировка заголовка
3. Формат упаковки для текста
4. Кодировка текста


Nameziz   (2008-11-17 13:29:00) [3]


> Код правильный, хоть и плохой.


Дайте совет по оптимизации


Anatoly Podgoretsky   (2008-11-17 13:13:00) [4]

> Nameziz  (17.11.2008 12:27:00)  [0]

Код правильный, хоть и плохой.


Сергей М.   (2008-11-17 12:53:00) [5]

Одно лишь довольно важное замечание:
    try
      IdSMTP.Connect(100);
      try
        IdSMTP.Send(IdMessage);
      finally
        if IdSMTP.Connected then//иначе, если соединение не было установлено, можно схлопотать исключение
          IdSMTP.Disconnect; // <- здесь
      end;


Сергей М.   (2008-11-17 12:46:00) [6]


> Вот код отправки


Нормальный код.
Проблемы не в нем.


KilkennyCat   (2008-11-17 12:40:00) [7]

Если проблема при получении, то при чем здесь код отправки?


Наверх

Титульная страница Поиск, карта сайта Написать письмо