Форум: "Сети";
Текущий архив: 2006.11.19;
Скачать: [xml.tar.bz2];
ВнизПроблема с кодировкой в indySMTP Найти похожие ветки
← →
nikitian © (2006-05-30 03:55) [0]Господа знатоки!
В indySMTP при отправке теам письма ставится в кодировке iso и становится абсолютно нечитаема. Кто работал с indy - как лечить? Использую indy6, может в 9 версии баг пофиксен?
Помогите, пожалуйста - очень сильно поджимают сроки!
← →
umbra © (2006-05-30 09:57) [1]это не баг, это протокол передачи почты. а что написано в заголовке в поле Subject?
← →
nikitian © (2006-05-30 15:15) [2]Вот примерно такая хрень: "Êàê äåëà?"
Баг в том, что я ставлю Charset в windows-1251, а заголовок на это плевать хотел.
Может в indy 9 нет такого? Не пробовали?
← →
umbra © (2006-05-30 16:04) [3]
> Баг в том, что я ставлю 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 20:52) [4]Огромное спасибо за такой развёрнутый ответ!
← →
Dust © (2006-06-29 11:37) [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?=
← →
Dust © (2006-06-29 11:42) [6]А, собственно вопрос - как заставить idMessage снова не перекодировать заголовок
← →
Dust © (2006-06-29 15:46) [7]Млин, неуж-то никто не разбирался?
← →
Eraser © (2006-06-29 17:48) [8]> [7] Dust © (29.06.06 15:46)
поищи в "прочее", примерно неделю назад обсуждали эту тему.
← →
Dust © (2006-06-30 16:06) [9]Либо я не то нашёл, либо эта проблем так и не была решена там.
Страницы: 1 вся ветка
Форум: "Сети";
Текущий архив: 2006.11.19;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.05 c