powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Проблема с кодировкой тела письма
11 сообщений из 11, страница 1 из 1
Проблема с кодировкой тела письма
    #39700832
Фотография Gallemar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Переписываю старые проекты с Delphi 7 на Delphi 10.2 Indy 10.6, не могу победить кодировку:
Код: pascal
1.
2.
3.
4.
  IdMessage1.CharSet:='UTF-8';
  IdMessage1.ContentType:='text/plain; UTF-8';
  IdMessage1.Body.Text:='йцукен';
  IdMessage1.Subject:='проблема с подключением';


Заголовок отображается нормально, а тело письма как ???.
...
Рейтинг: 0 / 0
Проблема с кодировкой тела письма
    #39700863
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так нужно самому кодировать. В Delphi ведь string не UTF8.
...
Рейтинг: 0 / 0
Проблема с кодировкой тела письма
    #39700873
Фотография Gallemar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
X11Так нужно самому кодировать. В Delphi ведь string не UTF8.
пробовал Windows-1251, такая же фигня
...
Рейтинг: 0 / 0
Проблема с кодировкой тела письма
    #39700875
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я не вижу здесь процедур кодирования.
...
Рейтинг: 0 / 0
Проблема с кодировкой тела письма
    #39700877
Фотография Gallemar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: pascal
1.
2.
3.
  IdMessage1.CharSet:='Windows-1251';
  IdMessage1.ContentType:='text/plain';
  IdMessage1.Body.Text:='йцукен';
...
Рейтинг: 0 / 0
Проблема с кодировкой тела письма
    #39700884
чччД__
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Gallemar
Код: pascal
1.
2.
3.
  IdMessage1.CharSet:='Windows-1251';
  IdMessage1.ContentType:='text/plain';
  IdMessage1.Body.Text:='йцукен';



X11Так нужно самому кодировать. В Delphi ведь string не UTF8.

PS: я в инди не разбираюсь, если что...
...
Рейтинг: 0 / 0
Проблема с кодировкой тела письма
    #39700885
Фотография Gallemar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
function ConvertToWIN1251(instr:string):string;
begin
result:='=?'+'Windows-1251'+'?B?'+form1.IdEncoderMIME1.Encode(instr)+'?=';
end;

  IdMessage1.CharSet:='Windows-1251';
  IdMessage1.ContentType:='text/plain';
  IdMessage1.Body.Text:=ConvertToWIN1251('йцукен');



Вместо '???' получаю =?Windows-1251?B?Pz8/Pz8/?=
...
Рейтинг: 0 / 0
Проблема с кодировкой тела письма
    #39700909
Gallemar,

Копай IdMessage1.OnInitializeISO
...
Рейтинг: 0 / 0
Проблема с кодировкой тела письма
    #39700910
alekcvp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gallemar,

Код: pascal
1.
2.
3.
4.
IdMessage1.CharSet := 'UTF-8';
  IdMessage1.ContentType := 'text/plain; UTF-8';
  IdMessage1.Body.Text := UTF8String('йцукен');
  IdMessage1.Subject := 'проблема с подключением';


И, кстати, IdMessage1.Body.Text - какой тип имеет?
...
Рейтинг: 0 / 0
Проблема с кодировкой тела письма
    #39701000
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
X11Так нужно самому кодировать. В Delphi ведь string не UTF8.

Но это не точно.


Gallemarне могу победить кодировку:

а что именно не так?
в какой программе или сервисе проблема?

я посмотрел у себя, попробуй и ты поработать с TIdText

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
procedure SendMail;
begin
  IdMessage1.ClearBody;
  IdMessage1.Subject :=  _name + ' ' + _PRICE + 'руб, ' + _YEAR + 'г. ';

  with TIdText.Create(IdMessage1.MessageParts) do
  begin
    CharSet := 'UTF-8';
    Body.Clear;
    Body.Add('Архив: ' +  IfThen(fIS_ARC, 'ДА', 'нет'));
    Body.Add('Цена: ' +   fPRICE);
    Body.Add('Ср.цена: '+ fprice_avg);
    Body.Add('Объем: ' +  fcapacity);
    Body.Add('Год выпуска: ' + _YEAR);
    Body.Add('Ссылка: ' + fURL);

    ContentType := 'text/plain';
  end;// with

    try
      if not fSMTP.Connected then
        fSMTP.Connect;
    except
      on e: exception do
        ///
    end;//try

    if fSMTP.Connected then
    try
      Sleep(StrToIntDef(fSendInterval, 15) * 1000);

      fSMTP.Send(IdMessage1);

      fSMTP.Disconnect(true);
    except
      on e: exception do
        ///
    end;//try

end;
...
Рейтинг: 0 / 0
Проблема с кодировкой тела письма
    #39701098
AJi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
AJi
Гость
Gallemar,

У меня вот так работает:
Код: pascal
1.
AMsg.ContentType := 'multipart/mixed; charset=UTF-8;';
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Проблема с кодировкой тела письма
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]