Принимаем письма с электронного почтового ящика своей программой на С++.
Unit1.cpp
//--------------------------------------------------------------------------- #include <vcl.h> #pragma hdrstop #include "Unit3.h" #include <IdText.hpp> // Подключаем хедер IdText.hpp //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" TForm3 *Form3; //--------------------------------------------------------------------------- __fastcall TForm3::TForm3(TComponent* Owner) : TForm(Owner) { } //--------------------------------------------------------------------------- void __fastcall TForm3::Button1Click(TObject *Sender) { ListView1->Items->Clear(); //Чистим ListView1 Memo1->Lines->Clear(); //Чистим Memo1 int MailCout = 0; //Задаем числовую переменную MailCout if (IdPOP31->Connected()) IdPOP31->Disconnect(); // Если есть подключение, то отключаем его IdPOP31->Connect(); //Подключаемся // Начало. Забрать почту. MailCout = IdPOP31->CheckMessages(); // Проверяем почту if (MailCout > 0) { //1 int c=0; for (int i = 1; i <= MailCout; i++) { //2 IdMessage1->Clear(); // Чистим IdMessage1 IdMessage1->ClearBody(); //Чистим IdMessage1 тело if(IdPOP31->Retrieve(i, IdMessage1)) {//3 ListView1->Items->Add(); //Процедура добавления ListView1->Items->Item[c] ->Caption=IdMessage1->From->Text; // От кого ListView1->Items->Item[c] ->SubItems->Add(IdMessage1->Subject); // Тема письма ListView1->Items->Item[c] ->SubItems->Add(DateToStr(IdMessage1->Date)); // Дата письма c++; }//3 }//2 } // 1 return; // Конец. Забрать почту } //--------------------------------------------------------------------------- void __fastcall TForm3::ListView1SelectItem(TObject *Sender, TListItem *Item, bool Selected) { if (ListView1->Selected != 0) //Если выбрано письмо {//1 TIdText *MText; Memo1->Lines->Clear(); //Чистим Memo1 if(IdPOP31->Retrieve(ListView1->Selected->Index+1, IdMessage1)) {//2 Memo1->Text=IdMessage1->Body->Text; } for (int i=0; i <IdMessage1->MessageParts->Count; i++) { if (IdMessage1->MessageParts->Items[i]->ClassNameIs("TIdText")) { //3 MText = (TIdText*) IdMessage1->MessageParts->Items[i]; Memo1->Text = MText->Body->Text; } } } } //---------------------------------------------------------------------------
Unit1.h
//--------------------------------------------------------------------------- #ifndef Unit3H #define Unit3H //--------------------------------------------------------------------------- #include <System.Classes.hpp> #include <Vcl.Controls.hpp> #include <Vcl.StdCtrls.hpp> #include <Vcl.Forms.hpp> #include <IdBaseComponent.hpp> #include <IdComponent.hpp> #include <IdExplicitTLSClientServerBase.hpp> #include <IdIOHandler.hpp> #include <IdIOHandlerSocket.hpp> #include <IdIOHandlerStack.hpp> #include <IdMessage.hpp> #include <IdMessageClient.hpp> #include <IdPOP3.hpp> #include <IdSSL.hpp> #include <IdSSLOpenSSL.hpp> #include <IdTCPClient.hpp> #include <IdTCPConnection.hpp> #include <Vcl.ComCtrls.hpp> #include <Vcl.ExtCtrls.hpp> //--------------------------------------------------------------------------- class TForm3 : public TForm { __published: // IDE-managed Components TButton *Button1; TPanel *Panel1; TPanel *Panel2; TMemo *Memo1; TListView *ListView1; TIdSSLIOHandlerSocketOpenSSL *IdSSLIOHandlerSocketOpenSSL1; TIdMessage *IdMessage1; TIdPOP3 *IdPOP31; void __fastcall Button1Click(TObject *Sender); void __fastcall ListView1SelectItem(TObject *Sender, TListItem *Item, bool Selected); private: // User declarations public: // User declarations __fastcall TForm3(TComponent* Owner); }; //--------------------------------------------------------------------------- extern PACKAGE TForm3 *Form3; //--------------------------------------------------------------------------- #endif