Форум программистов CodeGuru
18 Сентябрь 2018, 23:20:08 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.

Войти
Новости:
 
   Начало   Помощь Войти Регистрация  
Страниц: [1]   Вниз
  Печать  
Автор Тема: Кодировка символов при передаче текстового сообщения по сети  (Прочитано 21181 раз)
0 Пользователей и 1 Гость смотрят эту тему.
nikitozz
Новичок
*
Офлайн Офлайн

Сообщений: 3


Просмотр профиля
« : 21 Январь 2008, 18:15:29 »

Здравствуйте.
Есть такая проблема.
Написал свой маленький класс на Visual C++, который реализует функции SMTP клиента, т.е. отправляет текстовые сообщения. Для создания сокетов и установки соединения использовал API-шные функции (socket,send,recv и т.д.).
Все отлично, сообщения отправляются, но есть небольшая проблемка. Фактически я отправляю эти сообщения на сервер Lotus Notes. Когда же получатель получает это письмо в нормальном клиенте Lotus, у него имя отправителя и тема сообщения отображаются каракулями вместо нормальных русских символов.
Может кто сталкивался: это проблема у меня в коде либо все это решается настройкой клиента Lotus на другую кодировку.
Заранее спасибо
Записан
3V
Администратор
Ветеран
*****
Офлайн Офлайн

Сообщений: 1347



Просмотр профиля WWW
« Ответ #1 : 23 Январь 2008, 00:04:42 »

Цитировать
Может кто сталкивался: это проблема у меня в коде либо все это решается настройкой клиента Lotus на другую кодировку.

Наверно просто не прописывается кодировка в соответствующих полях заголовка.
Отправьте себе текстовое письмо и посмотрите его хидеры.
Например, поле Subject: в заголовках в кодировке koi8-r (текст сабжекта "С Новым годом! С новым счастьем!"), выглядит так:
Код:
Subject: =?koi8-r?B?8yDuz9fZzSDHz8TPzSEg8yDOz9fZzSDT3sHT1NjFzSE=?=
Обратите внимание на ?koi8-r?.

Если охота подробнее разобраться с форматом почтовых сообщений, то, имхо, надо почитать соответствующие RFC.
Записан

nikitozz
Новичок
*
Офлайн Офлайн

Сообщений: 3


Просмотр профиля
« Ответ #2 : 23 Январь 2008, 17:49:09 »

Спасибо
Записан
3V
Администратор
Ветеран
*****
Офлайн Офлайн

Сообщений: 1347



Просмотр профиля WWW
« Ответ #3 : 23 Январь 2008, 21:24:58 »

А вот и сами ссылки на rfc для работы с почтой:

То что точно надо прочитать:
RFC 822 – Standard for the format of ARPA Internet text messages
Стандарт заголовков и тела почтоввых сообщений

RFC 2822 – Internet Message Format
This standard specifies a syntax for text messages that are sent between computer users, within the framework of “electronic mail” messages. This standard supersedes the one specified in Request For Comments (RFC) 822, “Standard for the Format of ARPA Internet Text Messages”, updating it to reflect current practice and incorporating incremental changes that were specified in other RFCs.

Короче, этот RFC дополняет и расширяет RFC 822


Ну и далее еще насчет форматов непосредственно сообщений:

RFC 2076 – Common Internet Message Headers
This memo contains a table of commonly occurring headers in headings of e-mail messages. The document compiles information from other RFCs such as RFC 822, RFC 1036, RFC 1123, RFC 1327, RFC 1496, RFC 1521, RFC 1766, RFC 1806, RFC 1864 and RFC 1911. A few commonly occurring headers which are not defined in RFCs are also included. For each header, the memo gives a short description and a reference to the RFC in which the header is defined.

RFC 1521 – MIME (Multipurpose Internet Mail Extensions) Part One: Mechanisms for Specifying and Describing the Format of Internet Message Bodies

RFC 2045 – Multipurpose Internet Mail Extensions (MIME) Part One: Format of Internet Message Bodies

RFC 2047 – MIME Part Three: Message Header Extensions for Non-ASCII Text

RFC 2049 – MIME Part Five: Conformance Criteria and Examples
This document describes what portions of MIME must be supported by a conformant MIME implementation. It also describes various pitfalls of contemporary messaging systems as well as the canonical encoding model MIME is based on.

RFC 2231 – MIME Parameter Value and Encoded Word Extensions: Character Sets, Languages, and Continuations
This memo defines extensions to the RFC 2045 media type and RFC 2183 disposition parameter value mechanisms to provide (1) a means to specify parameter values in character sets other than US-ASCII, (2) to specify the language to be used should the value be displayed, and (3) a continuation mechanism for long parameter values to avoid problems with header line wrapping.


Это список RFC для работы с почтовыми серверами:

RFC 821 – Simple Mail Transfer Protocol
Собственно, описывается SMTP протокол. Т.к. RFC старый, то команды, описанные в нем, реализованы, наверно, во всех SMTP-серверах.

RFC 2821 – Simple Mail Transfer Protocol
This document is a self-contained specification of the basic protocol for the Internet electronic mail transport. It consolidates, updates and clarifies, but doesn't add new or change existing functionality.
Собственно, более полный RFC.


RFC 1939 – Post Office Protocol – Version 3
Ни что иное, как описание протокола POP3

RFC 2060 – Internet Message Access Protocol – Version 4rev1
Протокол IMAP rev 4


Ну и еще полезное (для Вас конкретно, думаю):
RFC 4096 – Policy-Mandated Labels Such as “Adv:" in Email Subject Headers Considered Ineffective At Best
This memo discusses policies that require certain labels to be inserted in the “Subject:" header of a mail message. Such policies are difficult to specify accurately while remaining compliant with key RFCs and are likely to be ineffective at best. This memo discusses an alternate, standards-compliant approach that is significantly simpler to specify and is somewhat less likely to be ineffective.


Удачи ! Улыбка
Записан

Страниц: [1]   Вверх
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2015, Simple Machines Valid XHTML 1.0! Valid CSS!