Принимаем письма с электронного почтового ящика своей программой на С++.

 

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