Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C++ Builder > Отображение таекста занками вопросов в E-mail


Автор: NightElf 28.7.2010, 15:40
Здравствуйте.

Народ, есть тема касаемо сообщений отправленных средствами Builder с использованием Indy.
Проблема в следующем, сообщения (именно текст письма) которые получает клиентская программа в (теле) типа The Bat или OutLook те что были написаны русским буквами,
Код

   IdMessage1->Body->Text = "Основной текст сообщения";

отображаются знаками вопроса после получения получателем.
Как это дело поправить можно?

Автор: SVN74 28.7.2010, 18:00
Такая тема уже многократно поднималась здесь на форуме.

Автор: NightElf 28.7.2010, 23:09
Цитата

Такая тема уже многократно поднималась здесь на форуме.

Не нашел. smile 
Можно ссылку...

Автор: SVN74 29.7.2010, 10:34
http://forum.vingrad.ru/forum/topic-250930.html
http://www.sql.ru/Forum/actualthread.aspx?bid=20&tid=672499&hl=
http://www.cyberforum.ru/delphi-networks/thread105627.html

Автор: NightElf 30.7.2010, 15:31
Нет не подходит.
Я использую Builder RAD2010
И использую TIdMessageBuilderPlain
Суть в том что он заменяет комструкцию 
Код

   IdMessage1->Body->Text = UTF8Encode("Русский рекст в теле"); // текст

на 
Код

   MyMessage->PlainText->Text = UTF8Encode("Проверка текста в сообщении");

Как именно, приведено ниже!
Код

#include <IdMessageBuilder.hpp>
...
{
   IdSMTP1->AuthType = satDefault;
   IdSMTP1->Username = "[email protected]"; //Имя пользователя
   IdSMTP1->Port = 25; //Порт
   IdSMTP1->Password = "password"; // пароль
   IdSMTP1->Host = "rapira.com"; // URL smtp
   IdMessage1->From->Text = "[email protected]"; //  отправитель
   IdMessage1->Recipients->EMailAddresses="[email protected]"; // получатель
   IdMessage1->Subject = "Сообщение из Builder C++"; // тема
   IdMessage1->Body->Text = UTF8Encode("Русский рекст в теле"); // текст

   TIdMessageBuilderPlain *MyMessage = new TIdMessageBuilderPlain();
   MyMessage->Attachments->Add("c:\\Price.DBF");
   MyMessage->PlainText->Text = UTF8Encode("Проверка текста в сообщении");
   MyMessage->FillMessage(IdMessage1);

   IdSMTP1->Connect();
   if (IdSMTP1->Connected() == true)
   {
      IdSMTP1->Send(IdMessage1);
      ShowMessage("Заказы отправленны!");
      IdSMTP1->Disconnect();
   }
}


А блок 
Код

   MyMessage->PlainText->Text = UTF8Encode("Проверка текста в сообщении");


почемуто не воспринимает UTF8Encode("Проверка текста в сообщении");

Если ктото сталкивался с проблемой помогите.

Автор: SVN74 30.7.2010, 16:55
UTF8Encode(L"Проверка текста в сообщении");
Дело в том, что в Indy10 вообще проблемы с переносом русских букв, - многие решают эту проблему используя не строковую передачу а  просто буфер.

Автор: NightElf 31.7.2010, 10:30
Цитата

Дело в том, что в Indy10 вообще проблемы с переносом русских букв, - многие решают эту проблему используя не строковую передачу а  просто буфер.

А как именно smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)