Отправляем письмо с вложением на C++. Простой способ отправки письма описан тут.

 

 Отправляем письмо через защищенное соединение SSL почтовика yandex.ru и прикрепляем к нему вложение. В данном примере текстовый файл. На видео также показан пример, как отправить картинку из папки на диске С:

адрес почтового сервера — smtp.yandex.ru;

защита соединения — SSL;

порт — 465.

Если Вы хотите отправить письмо через SSL mail.ru или google.com, то просто поменяйте адрес (хост) почтового соединения и порт. 

 

Unit1.cpp

//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"
#include "IdAttachmentFile.hpp" //  Хидер для подключение файлов
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
	: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
//Письмо
IdMessage1->Subject="Письмо + вложение";
IdMessage1->Body->Text=L"Письмо со вложением Вам пришло";
IdMessage1->From->Text="Этот адрес электронной почты защищён от спам-ботов. У вас должен быть включен JavaScript для просмотра.";
IdMessage1->Recipients->EMailAddresses="Этот адрес электронной почты защищён от спам-ботов. У вас должен быть включен JavaScript для просмотра.";
 //Отправляем вложение
 AnsiString File;
 TIdAttachmentFile *pAttachment;
 File = "1.txt" ;
  pAttachment =new  TIdAttachmentFile(IdMessage1->MessageParts,File);

//Содиняемся
IdSMTP1->Connect();
//Отправляем
IdSMTP1->Send(IdMessage1);
//Закрываем соединение
IdSMTP1->Disconnect();

}
//---------------------------------------------------------------------------

 

Unit1.h

//---------------------------------------------------------------------------

#ifndef Unit1H
#define Unit1H
//---------------------------------------------------------------------------
#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 <IdSMTP.hpp>
#include <IdSMTPBase.hpp>
#include <IdSSL.hpp>
#include <IdSSLOpenSSL.hpp>
#include <IdTCPClient.hpp>
#include <IdTCPConnection.hpp>
//---------------------------------------------------------------------------
class TForm1 : public TForm
{
__published:	// IDE-managed Components
	TButton *Button1;
	TIdSSLIOHandlerSocketOpenSSL *IdSSLIOHandlerSocketOpenSSL1;
	TIdSMTP *IdSMTP1;
	TIdMessage *IdMessage1;
	void __fastcall Button1Click(TObject *Sender);
private:	// User declarations
public:		// User declarations
	__fastcall TForm1(TComponent* Owner);
};
//---------------------------------------------------------------------------
extern PACKAGE TForm1 *Form1;
//---------------------------------------------------------------------------
#endif