Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

сохранить сообщение (имейл)

2.1K
09 октября 2009 года
FreeWay
142 / / 03.05.2007
Всем привет!!!!

Есть такой код:

Код:
void __fastcall TMain_f::Button2Click(TObject *Sender)
{
 int i, MailCount = 0, p, PartCount;
 AnsiString FileExt, FileName, Subj;
 TIdMessage *IdMsg;
 TIdAttachment *IdAttach;
 IdMsg = NULL;



 Main_f->NMPOP3->Connect();
 MailCount = Main_f->NMPOP3->CheckMessages();

 Main_f->RzRichEditLog->Lines->Add(GetDate(2)+"   Ïðîâåðêà ïî÷òû - ïèñåì íà ñåðâåðå "+MailCount);
 WriteToLog();

 if(MailCount > 0)
   {//1
       //ShowMessage("Est");
       for(i = 1; i <= MailCount; i++)

           {//2
              if(IdMsg != NULL) delete IdMsg;
              IdMsg = new TIdMessage(Main_f);

                 if(Main_f->NMPOP3->Retrieve(i, IdMsg))
                   {//3

                                  PartCount = IdMsg->MessageParts->Count;
                                       for(p = 0; p < PartCount; p++)
                                         {//5
                                              //if(IdMsg->MessageParts->Items->ClassNameIs("TIdAttachment"))
                                                  IdMsg->Body->SaveToFile(PathToExe+"Inp\\infile.txt");
                                                  {//6
                                                        //Main_f->TrayIcon->IconIndex=4;
                                                //        IdAttach = (TIdAttachment*) IdMsg->MessageParts->Items;
                                                  //      FileName = IdAttach->FileName;
                                                   //     Main_f->RzRichEditLog->Lines->Add(GetDate(2)+"   &#207;&#238;&#235;&#243;&#247;&#229;&#237; &#244;&#224;&#233;&#235; "+IdAttach->FileName+" &#237;&#224;&#247;&#232;&#237;&#224;&#229;&#236; &#238;&#225;&#240;&#224;&#225;&#238;&#242;&#234;&#243;...");
                                                   //     WriteToLog();
                                                        //if(FileExists(FileName)) DeleteFile(FileName);
                                                 //       IdAttach->SaveToFile(PathToExe+"Inp\\"+FileName);
                                                 //       //IdAttach->SaveToFile(FileName);


                                                  }//6

                                         }//5


                    }//3
             //Main_f->NMPOP3->Delete(i);
            }//2

   }//1




Main_f->NMPOP3->Disconnect();
if(IdMsg != NULL) delete IdMsg;

}



я хочу сохранить тело письма в файл, для этого как видно из кода добавил это:
IdMsg->Body->SaveToFile(PathToExe+"Inp\\infile.txt");

файл infile.txt создается, но почему то он пустой, подскажите пж что я не так седлал?
или подскажите как полностью письмо сохранить, чтоб было nazvanie.eml
1
09 октября 2009 года
kot_
7.3K / / 20.01.2000
Как минимум я бы вам советовал воспользоваться рекомендацией которую вам дали в предыдущей теме - подключать голову.
Во вторых - указывайте класс компонента который вы используете - если вы конечно хотите что бы вам помогли. У компонента TNMPOP3 нет метода Retrieve (по крайней мере в версиях билдера 5.0/6.0).
В третьих используйте отладчик.
2.1K
12 октября 2009 года
FreeWay
142 / / 03.05.2007
получилось так:

Код:
if(Main_f->NMPOP3->Retrieve(i, IdMsg))
                   {//3
                           //IdMsg->Body->SaveToFile(PathToExe+"Inp\\infile.txt");
                           //MemoReport->Lines->AddStrings( ((TIdText*)IdMsg->MessageParts->Items)->Body) ;
                                PartCount = IdMsg->MessageParts->Count;
                               //ShowMessage();
                                       for(p = 0; p < PartCount; p++)
                                         {//5
 
                                              if (IdMsg->MessageParts->Items->ClassNameIs("TIdText"))
                                                {
                                                  FileStringsBody->AddStrings(( (TIdText*)IdMsg->MessageParts->Items)->Body);
                                                }
                                          }//5
                                          FileStringsBody->SaveToFile(PathToExe+"Inp\\InpFile.txt");
                                          FileStringsBody->Clear();

 
                    }//3



кстати на форуме инди, посоветовали не if (IdMsg->MessageParts->Items

->ClassNameIs("TIdText"))
а
if (IdMsg->MessageParts->Items

->InheritsFrom(__classid(TIdText)) )

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог