Модераторы: Snowy, Poseidon, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Отправка почты на indy - проблема с кодировкой, тема письма приходит в нечитаемом виде 
:(
    Опции темы
hawkins
Дата 12.3.2009, 08:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 148
Регистрация: 8.9.2003

Репутация: нет
Всего: нет



В indy10 есть пример почтового клиента MailClient. Проблема с отправкой письма с помощью TIdSMTP с русскими буквами в теме.
Пробовал отправлять на разные почтовые сервисы, с содержимым на русском все нормально, а вот 
 тема везде нечитаемыми символами отображается. Попробовал посмотреть под снифером, 
 заголовок темы кодируется в KOI8, вот что в снифер показывает:

Subject: =?KOI8-R?B?z/Du4uXw6uA5?=\r\n

Как бы отучить инди кодировать тему, чтоб без KOI8 ?
Смотрел пример клиента из indy9 там тоже, только кодировка другая какая-то.
PM MAIL   Вверх
WaReZMEN
Дата 12.3.2009, 16:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 683
Регистрация: 9.6.2006
Где: Россия, Санкт-Пет ербург

Репутация: нет
Всего: 3



Вот глянь мож поможет smile
http://forum.vingrad.ru/forum/topic-250824.html
PM MAIL ICQ   Вверх
hawkins
Дата 12.3.2009, 22:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 148
Регистрация: 8.9.2003

Репутация: нет
Всего: нет



не а, мне не помогло. Да я уже пытался выставлять кодировку Windows-1251 и в CharSet и в
 ContentType и с UTF-8 то же пробовал - без результатно. Причем у меня с самим содержимым
проблем нет, тоько с заголовком темы. Вообще как-то странно что этот глюк у нас по разному проявляется, код приблизительно такой же. Видимо от версии индей зависит. А может и не глюк.

Слушай, а ты не мог бы свой исходник скинуть, а я проверю может правда дело в версии индей ?

PM MAIL   Вверх
Matematik
Дата 12.3.2009, 23:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1027
Регистрация: 11.3.2006

Репутация: 24
Всего: 50



> Subject: =?KOI8-R?B?z/Du4uXw6uA5?=\r\n

Тема в кодировке KOI8-R и закодировано алгоритмом Base64 (см. буковка ?B?)
Нормальные почтовики отображают абракадабру, потому что "z/Du4uXw6uA5" текст закодированый base64 и в кодировке windows-1251

Поменяешь на "=?Windows-1251?B?z/Du4uXw6uA5?=" будет показывать по-русски

В Indy9 кодируется легко
Код

uses IdCoderHeader;
EncodeHeader('Проверка9',[],'B',bit8, 'windows-1251')
// можно и так
EncodeHeader(AnsiToUtf8('Проверка9'),[],'B',bit8, 'UTF-8')


PM MAIL WWW ICQ   Вверх
hawkins
Дата 13.3.2009, 12:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 148
Регистрация: 8.9.2003

Репутация: нет
Всего: нет



Matematik, 

спасибо, надо попробовать этот способ, хотя я другой выход нашел уже. Перед отправкой тему оставляю пустой, а потом через ExtraHeaders добавляю заголовок темы вручную, то есть в коде получается приблизительно так:

Код

 IdMessage.Subject :='';
 IdMessage.ExtraHeaders.Add('Subject: '+edtSubject.Text);


ExtraHeaders - пользовательские заголовки
PM MAIL   Вверх
hawkins
Дата 19.3.2009, 10:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 148
Регистрация: 8.9.2003

Репутация: нет
Всего: нет



Покопался в методе TIdMessage.GenerateHeader , проблема действительно была в кодировке KOI8-R, а чтобы ее поменять на windows-1251, надо в событии TIdMessage.OnInitializeISO поменять кодировку: 
 
 
Код

procedure TfrmMessageEditor.IdMsgSendInitializeISO(
  var VTransferHeader: TTransfer; var VHeaderEncoding: Char;
  var VCharSet: string);
begin
 VCharSet:='windows-1251';
end;



а чтоб вообще не кодировал заголовки в BASE64 вроде надо написать  VHeaderEncoding:='8', но не проверял

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Сети"
Snowy
Poseidon
MetalFan

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делится вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Snowy, Poseidon, MetalFan.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Сети | Следующая тема »


 




[ Время генерации скрипта: 0.0481 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.