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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Русский текст отправленного программно, получается иероглифами 
:(
    Опции темы
Delphist
Дата 15.3.2007, 12:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Delphist Эксперт
****


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

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



При отправке письма я использую два компонента: TIdSMTP и TIdMessage. Отправка осуществляется через собственный SMTP-сервер на @yandex.ru. Текст приходящего письма получается иероглифами. Как это исправить.


--------------------
ProcessInfo 1-ая моя программа (аналог spyxx.exe с гораздо большим функц-ом - внедрение dll в адр. простр. процесса, перехват API-функций, разбор приложения на окна мн.др).
Когда-то давным-давно использовал это...
PM MAIL ICQ   Вверх
Matematik
Дата 15.3.2007, 17:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Если отправляешь просто текст body
то пропиши загловок
Код

Content-type: text/plain; charset=windows-1251

у TidMessage есть соответствующее сво-во
кажется так
Код

message.ContentType: 'text/plain; charset=windows-1251';

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


Delphist Эксперт
****


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

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



Цитата(Matematik @  15.3.2007,  18:02 Найти цитируемый пост)
Если отправляешь просто текст body
то пропиши загловок

Я сейчас работаю над проектом он связан с БД, но в нем мне нужно реализовать одну функцию - это отправка на e-mail (в домене yandex.ru) log-файла об ошибках программы без участия пользователя. Я использую компоненты INDY (может нужно использовать другие компоненты, посоветуйте какие?). Вообщем log-файл приходит мне на e-mail но есть, одно но, а именно тема письма отображается в иероглифах. Как с этим бороться? Облазил все форумы никто не может помочь.
Привожу примерный мой код

Переменная Msg - типа TIdMessage;
Переменная IdSMTP1 - типа TIdSMTP;


Код

procedure TfmMain.SendMail;
begin

  if not InitSMTP then
    exit;

  if IdSMTP1.Connected then
  begin
    Msg.CharSet := 'UTF-8';
    Msg.Subject := AnsiToUtf8(edtSubject.Text);
    Msg.Body.Text := AnsiToUtf8(mMailText.Text);

    Msg.Recipients.EMailAddresses := edtRecipients.Text;   //адрес получателя
    Msg.From.Address := edtFrom.Text;                      //адресс отправителя
    Msg.From.Name := AnsiToUtf8(edtUserNameFrom.Text);
    Msg.Date := now;                                       
    IdSMTP1.Send(Msg);
  end;
  IdSMTP1.Disconnect;
end;

function
  TfmMain.InitSMTP:
  boolean;
begin

  Result := True;
  IdSMTP1.AuthenticationType := atNone;
  IdSMTP1.Host := 'xxx.xxx.xxx.xxx';
  try
   IdSMTP1.Connect;
  except
    Result := False;
  end;
end;


procedure
  TfmMain.MsgInitializeISO(var VTransferHeader: TTransfer;
  var VHeaderEncoding: Char; var VCharSet: String);
begin
  {Этот код должен спасать от иероглифов - так пишут на форумах, но не фига он не спасает}
  VCharSet:= 'utf-8'
  VTransferHeader := bit7;
  VHeaderEncoding := 'B';
end;



P.S. Заранее спасибо! 

Это сообщение отредактировал(а) Delphist - 21.3.2007, 20:30


--------------------
ProcessInfo 1-ая моя программа (аналог spyxx.exe с гораздо большим функц-ом - внедрение dll в адр. простр. процесса, перехват API-функций, разбор приложения на окна мн.др).
Когда-то давным-давно использовал это...
PM MAIL ICQ   Вверх
Matematik
Дата 15.3.2007, 21:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Универсальный способ - отослать почтовиком и посмотреть какие он заголовки генерит.
Код

  IdMessage1.From.Address := '[email protected]';
  IdMessage1.Recipients.Add.Address := '[email protected]';
  IdMessage1.Subject := EncodeHeader(AnsiToUtf8('тема письма в UTF8'), [], 'B', bit8, 'utf-8');
  IdMessage1.ContentType := 'text/plain; charset="utf-8"';
  IdMessage1.Body.Text := AnsiToUtf8('текст письма');
  IdSMTP1.Host := 'smtp.mail.ru';
  IdSMTP1.Port := 25;
  IdSMTP1.Username := 'pupkin';
  IdSMTP1.Password := 'qwerty';
  IdSMTP1.Connect;
  IdSMTP1.Send(IdMessage1);
  IdSMTP1.Disconnect;  


Добавлено @ 21:28 
Код

uses IdCoderHeader;

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

Запрещено:

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

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

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

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

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


 




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


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

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