Рассмотрим пример отправки письма программным способом на С++. Простой способ тут.

 Отправляем письмо через защищенное соединение SSL почтовика yandex.ru

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

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

порт — 465.

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

 

Unit1.cpp

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

#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
	: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
IdSSLIOHandlerSocketOpenSSL1->SSLOptions->Method=sslvTLSv1;//Метод отправики TLS версии 1
IdSMTP1->IOHandler=IdSSLIOHandlerSocketOpenSSL1;//Присоединяем SSL
IdSMTP1->AuthType=satDefault; //Использоватб авторизацию
IdSMTP1->UseTLS=utUseImplicitTLS;//Использовать TLS
IdSMTP1->Port=465;//Порт
IdSMTP1->Username="cpptutor1";//  Логин почтовика отправителя
IdSMTP1->Password="12345678pass";// Пароль от почтовика отправителя
IdSMTP1->Host="smtp.yandex.ru";//Хост отправителя
IdSMTP1->ReadTimeout=15000;//Таймаут
//Само письмо
IdMessage1->CharSet="UTF-8"; //Кодировка для письма. Чтобы не пришли вместо букв символы.
IdMessage1->Subject="Первое письмо на С++";//Тема письма
IdMessage1->Body->Text=L"Тестовое письмо";// Текст поля письма
IdMessage1->From->Text="Этот адрес электронной почты защищён от спам-ботов. У вас должен быть включен JavaScript для просмотра.";// Кто отправил
 IdMessage1->Recipients->EMailAddresses="Этот адрес электронной почты защищён от спам-ботов. У вас должен быть включен JavaScript для просмотра.";//Кому письмо

 //Соединяемся
  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;
	TIdMessage *IdMessage1;
	TIdSMTP *IdSMTP1;
	void __fastcall Button1Click(TObject *Sender);
private:	// User declarations
public:		// User declarations
	__fastcall TForm1(TComponent* Owner);
};
//---------------------------------------------------------------------------
extern PACKAGE TForm1 *Form1;
//---------------------------------------------------------------------------
#endif