Показать сообщение отдельно
Старый 04.08.2011, 22:20   #28  
VasVovec is offline
VasVovec
Участник
Аватар для VasVovec
 
145 / 10 (1) +
Регистрация: 13.04.2007
Доброго времени суток. Подниму темку. Во время прошлых обсуждений отправку почты я реализовал через jmail.dll. Разобрался с кодировками в теме письма и в теле письма (Mail.Charset := 'windows-1251' к слову). Но теперь возникла необходимость прикладывать к письму атачменты. Прикладываться то они прикладываются, но в названии файла вместо русских букв кракозябры. С помощью просмотра кода письма (The Bat, клавиша F9) и http://2cyr.com/decode/?lang=ru я выяснил, что получается так:
1. Я передаю при вызове метода AddCustomAttachment название файла (оно передается в кодировке CP1251),
2. но код в этой библиотеке воспринимает этот текст, думая что он в кодировке CP1252 (в ней русских букв нету)
3. этот текст он преобразовывает в utf8 и пишет закодировав в Base64 в заголовки, отвечающие за атач.
Погуглив, я выяснил что в Windows у некоторых программ такое встречается. Даже в Navision если скопировать пару строк из таблицы при включенной англиской раскладке и потом попытаться их вставить в Excel или блокнот, то вместо русских букв получим кракозябры. Это лечится изменением ключа реестра HKEY_LOCAL_MACHINE -> system -> CurrentControlSet -> Control -> Nls -> CodePage -> 1252 c с_1252.nls на с_1251.nls и перезагрузкой.
Но копирование из навижена стало теперь всегда работать правильно, а проблема с русскими буквами в атаче так и не решилась.
Кому-нибудь удалось это побороть?