Отправляем письмо с вложением на 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