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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Отправка e-mail из D2009, Невозможно передать кирилицу 
:(
    Опции темы
Aeore
Дата 23.12.2009, 18:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Delphi 2009, Indy 10

Пытаюсь передать письмо из своей программы на заданный адрес gmail. Письмо приходит, тут все просто отлично, но беда - русский текст там превращается в "?????????". Как исправить эту проблему ? Я уже какие комбинации не пробовал - все не то

Вот начало используемого кода:
Код

  idsmtp.Host := 'smtp.gmail.com';
  idsmtp.Port := 587;
  idsmtp.Username := '****';
  idsmtp.Password := '****';
  idsmtp.ConnectTimeout  := 60 * 100;

  IdMessage.ContentType := 'text/plain; charset=utf-8';  // тут везде пробовал уже что угодно..
  IdMessage.CharSet := 'UTF-8'; // ...
  IdMessage.ContentTransferEncoding := '16bit'; // ...

  IdMessage.From.Name := OperatorName;
  IdMessage.Organization := 'Radiolocator MT';
  IdMessage.From.Address := '**';
  IdMessage.Recipients.EMailAddresses := '**';
  IdMessage.Subject := 'radiolocator for mt \ report. Version ' + GetVersionString;


  IdMessage.Body.Text := Format(
    'CRASH REPORT'#13#10 +
   ...
    '%s',
    [OperatorName, ... ConsoleWnd.redtConsole.Text]);

PM MAIL ICQ   Вверх
Keeper89
Дата 23.12.2009, 20:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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





--------------------
PM MAIL WWW   Вверх
Aeore
Дата 23.12.2009, 21:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



это не помогает
PM MAIL ICQ   Вверх
Bima
Дата 6.1.2010, 02:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(Aeore @  23.12.2009,  22:58 Найти цитируемый пост)
это не помогает

Аналогично уже который день бьюсь над проблемой.  у меня правда нужно отправить файл (в названии есть русские буквы) в итоге получаю знаки вопросы в названии файла.
Как делаю письмо:
Код

  IdSMTP1.Host := MyHost;
  IdSMTP1.Username := MyLogin;
  IdSMTP1.Password := MyPassword;
  //IdSMTP1.AuthType := satNone;// Если не требуется авторизация
  IdSMTP1.MailAgent := 'Microsoft Outlook';
  IdSMTP1.AuthType := satDefault;

  Application.ProcessMessages;
  Msg.CharSet := 'windows-1251';
  Msg.ContentTransferEncoding := '8bit';
  Msg.Encoding := meDefault;
  Msg.Subject := MySubject; // тема письма
  Msg.Recipients.EMailAddresses := MyMail;    // кому (адреса через запятую без пробелов)
  Msg.From.Address := MyAddress; //от кого
  //Msg.Body.Text := ''; //содержание

  TIdAttachmentFile.Create(Msg.MessageParts, MyPathFile + MyFile); //присоединяем файл

Дальше отправляю письмо
в итоге в заголовок письма такой:

Код

Return-path: <******@mail.ru>
Received: from [94.25.5.58] (port=28451 helo=home)
        by mx74.mail.ru with asmtp 
        id 1NSIOs-0003BN-00
        for *******@mail.ru; Wed, 06 Jan 2010 02:01:20 +0300
From: "*******@mail.ru" <*******@mail.ru>
Subject: Maket 51
To: *****@mail.ru
MIME-Version: 1.0
Date: Wed, 6 Jan 2010 03:01:16 +0400
X-Mailer: Microsoft Outlook
Content-Type: application/octet-stream; name="?????????? ? 51 ?? ??????.xls"
Content-Disposition: attachment
        filename="?????????? ? 51 ?? ??????.xls"
Message-Id: <[email protected]>
X-Spam: Not detected
X-Mras: OK
Content-Transfer-Encoding: base64

название файла, которое я отсылаю : "макет 51 за январь.xls" в итоге получаю "?????????? ? 51 ?? ??????.xls"
сначала я думал, что достаточно будет перекодировать имя файла в нужную кодировку, но сразу понял, что ничего из этого не выйдет, так, как если название файла нечитаемо, то инструкция:
Код

TIdAttachmentFile.Create(Msg.MessageParts, Function(MyPathFile + MyFile)); //присоединяем файл

Не выполняется. (Function - подпрограмма перекодировки).
После этого начал экспериментировать со строкой:
Код

Msg.Encoding := meDefault;

у которой можно поставить еще два свойства meMIME и mePlainText. В первом случае письмо ушло и я его расшифровать не смог, а во втором случае вложение было нулевым и вместо знаков вопросов были подчеркивания.

Уже не знаю что делать.
Ох уж этот unicod в 2009....  что делать даже не знаю.... весь инет перерыл ничего не помогает.

П.С. индейцы 10.2.5.

Это сообщение отредактировал(а) Bima - 6.1.2010, 02:22


--------------------
Чтобы дойти до цели, надо идти.

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

Запрещено:

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

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

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

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

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


 




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


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

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