C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
Indy10 — проблемы с отправкой почты
Rusland
Отправлено: 23.01.2007, 10:39


Ученик-кочегар

Группа: Участник
Сообщений: 2



Пользовался в CBuilder6 компонентами IdSMTP и IdMessage (насколько помню в CBuilder6 по умолчанию стоит Indy9) для отправки писем с вложениями и все было хорошо, а сейчас решил перевести свой проект на BDS2006 и перестал работать код прикрепления файла:
CODE
IdSMTP->Connect();
TIdAttachment *Attach = new TIdAttachment(Msg->MessageParts,AttachFile); //здесь выдает ошибку
Msg->Subject="Текст темы сообщения";
Msg->Recipients->EMailAddresses=Form2Sets->Email->Text; //указываем адрес получателя
Msg->From->Address=Form2Sets->EmailFrom->Text; //указываем автора письма
Msg->Body->Text=BodyMessage->Text; //размещаем текст сообщения
Msg->Date=StrToDate(Now().CurrentDate());
Msg->CharSet="windows-1251";
IdSMTP->Send(Msg);
IdSMTP->Disconnect();
delete Attach;

Компилятор ругается на строчку:
[C++ Error] Unit6.cpp(86): E2352 Cannot create instance of abstract class 'TIdAttachment'
[C++ Error] Unit6.cpp(86): E2353 Class 'TIdAttachment' is abstract because of '_fastcall TIdAttachment::OpenLoadStream() = 0'

Где здесь ошибка? В Indy10 нужно как-то иначе прикреплять файл к письму?
Заранее благодарен за советы.

PS. Кроме того отправка письма без вложения происходит долго (около минуты).
Rusland
Отправлено: 23.01.2007, 15:24


Ученик-кочегар

Группа: Участник
Сообщений: 2



В общем сам разобрался,
вместо
TIdAttachment *Attach = new TIdAttachment(Msg->MessageParts,AttachFile);
надо писать
new TIdAttachmentFile(Msg->MessageParts,AttachFile);

Вернуться в Вопросы программирования в C++Builder