-
Доброго дня мастера.
Перепробовал многое, и всего чего добился - это чтобы тема письма отображалась по русски.
вот исправления:
procedure TSendMailFm.IdMessage1InitializeISO(
var VTransferHeader: TTransfer; var VHeaderEncoding: Char;
var VCharSet: String);
begin
VCharSet:='windows-1251';
VTransferHeader := bit8;
VHeaderEncoding := 'B';
end;
подправил файл idMessageClient -
if ATextPart.CharSet = '' then begin
ATextPart.CharSet := ISOCharSet; {do not localize}
end;
//сцылок на данное исправление - палным полно -)
with idMessage1 do
begin
CharSet:='windows-1251';
ContentType:='text/plain';
end;
вот и все.
Одни говорят что так работает, а у меня нет.
Как мне передать тело письма, чтобы открыв его в MS Outlook - было все по русски?
-
> Как мне передать тело письма, чтобы открыв его в MS Outlook
> - было все по русски?
>
передайте его с ContentTransferEncoding = Quoted-printable. Для нормальных почтовых клиентов достаточно указания Charset.
-
Пошли письмо и посмотри заголовки.
-
>Anatoly Podgoretsky © (26.11.07 12:16) [2]
Subject: =?windows-1251?B?8uXs4A==?=
To: ikuliba@it.od.ua
Content-Type: text/plain
Date: Mon, 26 Nov 2007 11:25:19 +0000
Message-Id: <20071126092550.9E6C1B8C8@gw.it.od.ua>
если чесно - пока незнаю как сие мне может помочь....
>umbra © (26.11.07 12:10) [1]
не помогло.... может все беда в том что через прокси?
-
> tytus (26.11.2007 12:28:03) [3]
Видишь кодировку для тела?
Я нет.
-
а в тело письма вы точно в windows-1251 пишете? :)
-
>Anatoly Podgoretsky © (26.11.07 12:36) [4]
и я не вижу. Так что делать...?
>umbra © (26.11.07 12:36) [5]
строки беру из RichEdit cо свойством PlainText=true;
with idMessage1 do
for i:=0 to RE2.Lines.Count-1 do
begin
Body.Add(RE2.Lines[i]);
end;
-
Не понятно зачем тут обработчик события, когда все парметры (а их много больше) можно установить в дизайн тайм?
Приведен ли весь заголовок?
-
>Anatoly Podgoretsky © (26.11.07 13:25) [7]
палучилась!!!
var
iText:TidText;
begin
....
iText:=TidText.Create(idMessage1.MessageParts,nil);
iText.ContentType:='text/plain';
iText.CharSet:='windows-1251';
for i:=0 to RE2.Lines.Count-1 do
iText.Body.Add(RE2.Lines[i]);
...
end;
а вот и загаловки:
MIME-Version: 1.0
Date: Mon, 26 Nov 2007 12:23:02 +0000
Content-Type: text/plain ; charset="windows-1251"
Content-Transfer-Encoding: quoted-printable
всем спасибо!
-
> tytus (26.11.2007 13:35:08) [8]
Вот теперь вижу должный заголовок.
Теперь второй шаг, убери Content-Transfer-Encoding: quoted-printable и замени его или на Base64 или на None (если допустимо), только не quoted-printable.
Наиболее оптимальный и по качеству и компромис по размеру это Base64 - с ним меньше всего проблем.
-
>Anatoly Podgoretsky © (26.11.07 13:56) [9]
Спасибо, учтем на дальнейшее.
Заменил на Base64, и вот что в заголовке:
MIME-Version: 1.0
Date: Mon, 26 Nov 2007 14:14:51 +0000
Content-Type: text/plain ; charset="windows-1251"
Content-Transfer-Encoding: quoted-printable
... тоже самое.
-
> tytus (26.11.2007 15:18:10) [10]
Это неправильно, значит не отработало или не там установил.