Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Сети > русский шрифт в свойстве Subject


Автор: Cashey 17.6.2008, 13:38
при отправке почту через компонент TNMSMTP с вкладки FastNet. если тема письма написанно русскими буквами то получателю тема приходит аброкадаброй. св-во Charset влияет только на кодировку тела письма, а как изменить кодировку свойств Subject и FromName?

Автор: Snowy 17.6.2008, 14:23
Переконвертировать в koi-8
Если в заголовке явно не указано кодирование, то подразумевается koi-8
Кодировка и страница указываются в самом тексте заголовка.
Пример: =?windows-1251?Q?Заголовок?=
Но лучше сконвертировать в koi-8 - так надёжнее
=?koi8-r?Q?ъБЗПМПЧПЛ?=
А ещё надёжнее - сконвертить в кои-8 и закодировать в Base64
=?koi8-r?B?0tXT08vJyiDb0snG1CDXINPXz8rT1NfFIFN1YmplY3QsIMvPzdDPzsXO1CBU?=

Автор: Cashey 17.6.2008, 15:51
ну и как это сделать в свете классического примера из DRKB?
Код

procedure TForm1.Button1Click(Sender: TObject); 
begin 
NMSMTP1.Host := 'smtp.mailserver.com'; 
NMSMTP1.UserID := 'h.abdullah'; 
NMSMTP1.Connect; 
NMSMTP1.PostMessage.FromAddress := '[email protected]'; 
NMSMTP1.PostMessage.ToAddress.Text := '[email protected]'; 
NMSMTP1.PostMessage.Body.Text := 'Текст письма';
NMSMTP1.PostMessage.Subject := 'Тема письма';
NMSMTP1.SendMail; 
end;

Автор: Snowy 17.6.2008, 16:54
Исправить строку 
Код

NMSMTP1.PostMessage.Subject := '=?windows-1251?Q?Тема письма?=';

либо на
Код

NMSMTP1.PostMessage.Subject := '=?koi-8?Q?фЕНБ РЙУШНБ?=';

Автор: Cashey 18.6.2008, 10:34
Snowy, не сработало
при 
Цитата(Snowy @  17.6.2008,  17:54 Найти цитируемый пост)
NMSMTP1.PostMessage.Subject := '=?windows-1251?Q?Тема письма?=';

пришел заголовок опять же не читабельный, а при

Цитата(Snowy @  17.6.2008,  17:54 Найти цитируемый пост)
NMSMTP1.PostMessage.Subject := '=?koi-8?Q?фЕНБ РЙУШНБ?=';

в заголовке русские буквы появились, но вместе с служебными символами "=?koi-8?Q?Тема письма?="

Добавлено через 13 минут и 18 секунд
если изначально задавать абракадабру 
Код

NMSMTP1.PostMessage.Subject := 'фЕНБ РЙУШНБ';

 то тогда заголовок читается нормально. только как мне тогда всю кирилицу конвертовать?

Автор: Cashey 18.6.2008, 10:57
Цитата(Cashey @  18.6.2008,  11:34 Найти цитируемый пост)
только как мне тогда всю кирилицу конвертовать?

усе, кажись разобрался. в DRKB есть функции

Автор: Snowy 18.6.2008, 11:27
Я так и сказал - по умолчанию подразумевается кодировка koi-8
А вообще стандартным на данный момент стало оформление кодировки в koi-8, кодированное в Base64
Но это несколько сложнее оформить, чем просто конвертацию в кои-8
Зато читается практически всеми почтовиками.
А с quotet printable я мог и напутать - давно не получал писем с таким форматом, подзабыл уже.
Все в Base64 идут... 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)