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); |
|