![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Проблема с кодировкой в indySMTP [D6, WinXP]
nikitian © (2006-05-30 03:55:00)Господа знатоки!
В indySMTP при отправке теам письма ставится в кодировке iso и становится абсолютно нечитаема. Кто работал с indy - как лечить? Использую indy6, может в 9 версии баг пофиксен?
Помогите, пожалуйста - очень сильно поджимают сроки!
Dust (2006-06-30 16:06:00) [1]Либо я не то нашёл, либо эта проблем так и не была решена там.
Eraser (2006-06-29 17:48:00) [2]> [7] Dust © (29.06.06 15:46)
поищи в "прочее", примерно неделю назад обсуждали эту тему.
Dust (2006-06-29 15:46:00) [3]Млин, неуж-то никто не разбирался?
Dust (2006-06-29 11:42:00) [4]А, собственно вопрос - как заставить idMessage снова не перекодировать заголовок
Dust (2006-06-29 11:37:00) [5]угу, пасиб, улыбнуло
только это ещё невсё
subj := 'Ащипка';
amsg.Subject := '=?windows-1251?B?'+MimeEncodeStringNoCRLF(subj)+'?=';
получаем письмо, где
Subject: =?KOI8-R?B?PT93aW5kb3dzLTEyNTE/Qj93UG5vNytyZz89?=
------
MimeDecodeString('=?KOI8-R?B?PT93aW5kb3dzLTEyNTE/Qj93UG5vNytyZz89?=')=
=?windows-1251?B?wPno7+rg?=
nikitian (2006-05-30 20:52:00) [6]Огромное спасибо за такой развёрнутый ответ!
umbra (2006-05-30 16:04:00) [7]
> Баг в том, что я ставлю Charset в windows-1251
> Может в indy 9 нет такого? Не пробовали?
>
есть. это не баг.Charsetвыставляется для тела сообщения, а полеSubjectотносится к заголовку. А он, согласно протоколу, может содержать только печатные символы с кодами < 128 (за исключением пробела, ?, а в некоторых случаях и других символов). Т.е. со 100% гарантаей там могут быть только латинские буквы и цифры
> "Êàê äåëà?"
чтобы почтовый клиент правильно отобразил тему на русском языке, в поле заголовкаSubjectдолжно стоять что-то вроде
=?(кодировка)?(способ кодирования)?(кодированная фраза)?=
здесь "=" - метка начала и конца содержимого поля, "?" - разделитель
"кодировка" - кодовая таблица (windows-1251, koi8-r и т.д.)
"способ кодирования" - способ представления. Есть 2 способа, один
обозначается буквой "В" (латинской) и представляет собой кодирование по
алгоритму Base64, другой - буквой "Q" - кодирование по алгоритму
Quoted-Printable.
(кодированная фраза) - собственно тема, которая была введена в кодовой таблице (кодировка) и преобразована согласно способу кодирования.
Т.е. если тема письма "Это тема письма", то чтобы после получения письма она выглядела нормально, в поле заголовка сообщения должно стоять
=?windows-1251?B?3fLuIPLl7OAg7+jx/Ozg?=
Все это в больших подробностях описано в RFC 2047
Уф, наконец то я сам разобрался с этим вопросом. :)
nikitian (2006-05-30 15:15:00) [8]Вот примерно такая хрень: "Êàê äåëà?"
Баг в том, что я ставлю Charset в windows-1251, а заголовок на это плевать хотел.
Может в indy 9 нет такого? Не пробовали?
umbra (2006-05-30 09:57:00) [9]это не баг, это протокол передачи почты. а что написано в заголовке в поле Subject?