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

 
класс TidAttachment, где взять пример работы с классом
finder007
Отправлено: 27.10.2006, 07:21


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

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



Привет всем.

Подскажите, где можно взять пример работы с переменными типа
TidAttachment именно для Builder.
Для Delphi примеров множество, но не могу их применить, не получается.

Нужно всего — то приаттачить к письму файл, для рассылки используется компонент Indy
Gedeon
Отправлено: 27.10.2006, 18:10


Ветеран

Группа: Модератор
Сообщений: 1742



CODE
AnsiString ValName, GoldName, SoftMoneyName;
   ValName = "M:\\NBUMAIL\\USERD\\NBU\\IN\\CURR\\val$" + Date().FormatString("ddmm");
   GoldName = "M:\\NBUMAIL\\USERD\\NBU\\IN\\CURR\\gold" + Date().FormatString("ddmm");
   SoftMoneyName = "M:\\NBUMAIL\\USERD\\NBU\\IN\\CURR\\VALK" + Date().FormatString("ddmm");

   TIdSMTP *SMPT = new TIdSMTP(NULL);
   SMPT->Host = "192.168.100.1";
   SMPT->Port = 25;
   SMPT-> Username = "gedeon";

   SMPT->Connect();
   if(SMPT->Connected()){
       WriteToFileMsg(ExtractFilePath(Application->ExeName) + "log.txt",
        Date().FormatString("dd.mm.yyyy ") + "Starting Send\n");
       TIdMessage* M = new TIdMessage(NULL);
       M->From->Text = "gedeon@xxx.zp.ua";
       M->Recipients->Add();
       M->Recipients->Items[0]->Text = "katya@xxx.zp.ua";
       M->Recipients->Add();
       M->Recipients->Items[1]->Text = "smir@xxx.zp.ua";
       M->Subject = "Курсы валют и драг металлов";
       M->Body->Add("See the attachment file(s)");
       TIdAttachmentFile *att = new TIdAttachmentFile(M->MessageParts,
        "C:\\Program Files\\Common Files\\Gedeon Shared\\BCS\\ValGold.txt");
       M->MessageParts->Add();
       M->MessageParts->Items[0] = att;
       WriteToFileMsg(ExtractFilePath(Application->ExeName) + "log.txt",
        Date().FormatString("dd.mm.yyyy ") + "ValGold.txt Attached\n");
       if(NeedSoftMoney()){
           if(FileExists(SoftMoneyName)){
               CopyFile(SoftMoneyName.c_str(),
                "C:\\Program Files\\Common Files\\Gedeon Shared\\BCS\\SoftVal.txt",false);
               TIdAttachmentFile* soft_att = new TIdAttachmentFile(M->MessageParts,
                   "C:\\Program Files\\Common Files\\Gedeon Shared\\BCS\\SoftVal.txt");
               M->MessageParts->Add();
               M->MessageParts->Items[1] = soft_att;
               WriteToFileMsg(ExtractFilePath(Application->ExeName) + "log.txt",
                Date().FormatString("dd.mm.yyyy ") + "SoftVal.txt Attached\n");
            }
       }

       try{
           SMPT->Send(M);
       }

       catch(Exception &E){
           WriteToFileMsg(ExtractFilePath(Application->ExeName) + "log.txt",
            Date().FormatString("dd.mm.yyyy ") + E.Message + "\n");
       }
       SMPT->Disconnect();
       delete att;
       delete M;

   }
   delete SMPT;
   if(ExceptionHappaned){
       ::Sleep(60000);
       SendMail();
   }
   WriteToFileMsg(ExtractFilePath(Application->ExeName) + "log.txt",
                Date().FormatString("dd.mm.yyyy ") + "Letter Sended\n\n");
   Application->Terminate();


Для инди 10, для того что в дистре аттачи немного по другому работают, как не помню, посмотреть и проверить не могу.

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