Форум: "Сети";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.01.17;
Скачать: [xml.tar.bz2];




Вниз

Кодировка почты 


KLM   (2001-09-28 10:11) [0]

Подскажите пожалуйста как правильно выставить кодировку в POP3 чтобы текст нормально читался в оутлуке?



KLM   (2001-10-01 10:47) [1]

Народ - ниужели никто не может помочь?



SKiwa   (2001-10-01 11:51) [2]

Каков вопрос, таков ответ. Не в обиду. :)
Попробуй посмотреть заголовки писем, например те которые приходят к тебе, и подобрать варианты.
А еще лучше возми "!The Bat" отправь сам себе несколько писем с разной кодировкой и опять посмотри чем отличаются.
Самое главное чтобы кодировка в которой у тебя тело письма и признаки в заголовке соответствовали. Если вопрос как работать с Base64 и т.п. то пиши конкретнее.



KLM   (2001-10-01 13:07) [3]

А поподробнее - что такое Base64 и с чем его едят?



SKiwa   (2001-10-01 13:24) [4]

Исторически сложилось так, что гарантированно проходят только 7бит символа(чистый ASCII), т.е. русские символы(8бит) могут быть искажены(да и не только русские).
Т.к. существуют сервера(а точнее люди, преимущественно в США) которые принципиально не желают знать других кодировок кроме ASCII, то для решения проблем применяются несколько подходов, один из них Base64.
В чем его смысл - 3 симола по 8 бит объединяются в 24 битное число, которое затем разбивается на 4 кода по 6 бит и они затем переводятся в коды символов таблицы ASCII в соответствии с таблицей
Code64: String[64] =
("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/");
Т.е. если 6 битовый код равен нулю то в текст письма будет подставлен символ "A" первый символ из приведенной строки. На клиентской стороне делается обратное преобразование и восстанавливается исходный текст.
Таким образом через сервера письма проходят без искажений т.к. не содержат 8 битовых символов, но при этом на 3 оригинальных символа передаются 4 символа соответствующих ASCII.
Если при преобразовании последний кусок из 3 символов заполняется не полностью, нельзя требовать от людей чтобы длинна текста была кратна 3, то в теле письма идут знаки "=" которые фактически обозначают отсутствие символа.



KLM   (2001-10-03 05:08) [5]

Хорошо, а при отправке почты у SMTP какую кодировку необходимо поставить, чтобы мои письма нормально читались?



SKiwa   (2001-10-03 07:54) [6]

Лучше всего поступить так:
1. Перекодировать тело письма в КОИ-8
2. Затем закодировать его как Base64
Затем установить в заголовке следующие признаки
Content-Type: text/plain; charset=koi8-r
Content-Transfer-Encoding: base64



KLM   (2001-10-09 09:46) [7]

Как работать с заголовками писем?



SKiwa   (2001-10-11 14:27) [8]

Зависит от того, какими компонентами пользуешься. Я бы советовал Indy http://www.nevrona.com/indy
Indy штатно поставляется с Delphi6, а для Delphi5 можно разок выкачать, заодно скачай демонстрашки, наверняка там найдешь все что надо.



KLM   (2001-10-24 03:57) [9]

SKiwa пользуюсь NMSMTP Неужели никак попроще



glux   (2001-10-24 16:51) [10]

http://www.nevrona.com/indy эта штука все равно по русски кодировать не умеет, так что русский текст в Subject не положить



KLM   (2001-10-25 06:24) [11]

Так как мне послать нормальное письмл, чтобы читалось?



SKiwa   (2001-10-25 08:31) [12]

Ну неужели русский текст трудно закодировать в Base64 и положить в Subject.
Посмотрите
http://delphi.mastak.ru/cgi-bin/forum.pl?look=1&n=4&id=1001957703
Я там уже писал про кодировку Subject.



SKiwa   (2001-10-25 08:39) [13]

А по поводу NM компонент почитайте
http://delphi.mastak.com/cgi-bin/forum.pl?look=1&n=4&id=1000534516
Там приведен красноречивый глюк NMPOP3, но уверяю вас что каждый NM компонент обладает, массой подобных глюков.
Мне уже надоело приводить примеры глюков NM, просто совет - не работайте с NM компонентами, работайте с Indy. Глюки конечно есть везде, но для Indy есть исходные тексты, и выходят новые версии.




Форум: "Сети";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.01.17;
Скачать: [xml.tar.bz2];




Наверх





Память: 0.74 MB
Время: 0.015 c
1-52602           ЗЛОБНЫЙ КАРЛИК        2001-12-27 13:11  2002.01.17  
String-TStrings. String-PChar. PChar-TStrings!!!! HEEEEELP!


1-52546           VitHouse              2001-12-27 10:25  2002.01.17  
Не, ну вообще прикл...


7-52669           Woolen                2001-10-01 13:10  2002.01.17  
Блокирование


14-52654          Tosov                 2001-11-22 00:37  2002.01.17  
http://delphi.mastak.ru/articles/advises/index.html


1-52553           Flagman               2001-12-28 12:14  2002.01.17  
Спрятать курсор в TRichEdit