Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Сети";
Текущий архив: 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% гарантаей там могут быть только латинские буквы и цифры


> "&#202;&#224;&#234; &#228;&#229;&#235;&#224;?"

чтобы почтовый клиент правильно отобразил тему на русском языке, в поле заголовка 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
15-1161933254
IMHO
2006-10-27 11:14
2006.11.19
Детсад опасен для детей


2-1162412292
Reaper85
2006-11-01 23:18
2006.11.19
СПАСИТЕЕЕЕЕ!!!!


15-1162264780
Slider007
2006-10-31 06:19
2006.11.19
С днем рождения ! 31 октября


10-1125325670
KSergey
2005-08-29 18:27
2006.11.19
COM+ disable/enable


2-1161636887
vidiv
2006-10-24 00:54
2006.11.19
JvDBTreeView





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский