Mailer 1.0.5
C++ daemon for sending order emails via SMTP
Loading...
Searching...
No Matches
EmailSender Class Reference

#include <email_sender.h>

Public Member Functions

 EmailSender (const std::string &smtp_server, const int smtp_port, const std::string &protocol, const std::string &from_email, const std::string &password, const std::string &from_name="")
 Конструктор.
 
 ~EmailSender ()
 Деструктор. Очищает списки получателей и вложений.
 
void setEmailContent (const std::string &subject="", const std::string &body="")
 Устанавливает тему и тело письма.
 
void addRecvEmailAddr (const std::string &email_addr, const std::string &name="")
 Добавляет получателя в список "Кому".
 
void addCcEmailAddr (const std::string &email_addr, const std::string &name="")
 Добавляет получателя в скрытую копию.
 
void addAttachment (const std::string &filename)
 Прикрепляет файл к письму.
 
int send ()
 Отправляет письмо через SMTP (libcurl).
 

Private Attributes

std::string m_smtp_url
 URL SMTP-сервера (protocol://server:port).
 
std::pair< std::string, std::string > m_from
 Пара (email, имя отправителя).
 
std::string m_password
 Пароль для аутентификации.
 
std::vector< std::pair< std::string, std::string > > m_recvs
 Список получателей (email, имя).
 
std::vector< std::pair< std::string, std::string > > m_ccs
 Список получателей копии (email, имя).
 
std::string m_email_subject
 Тема письма.
 
std::string m_email_body
 Тело письма.
 
std::vector< std::string > m_attachments
 Список прикреплённых файлов.
 

Detailed Description

Отправка электронных писем через SMTP (libcurl).

Формирует MIME-сообщение с HTML-телом и вложениями, аутентифицируется на SMTP-сервере и отправляет письмо.

Definition at line 14 of file email_sender.h.

Constructor & Destructor Documentation

◆ EmailSender()

EmailSender::EmailSender ( const std::string & smtp_server,
const int smtp_port,
const std::string & protocol,
const std::string & from_email,
const std::string & password,
const std::string & from_name = "" )

Конструктор.

Конструктор.

Parameters
smtp_serverАдрес SMTP-сервера.
smtp_portПорт SMTP-сервера.
protocolПротокол: "smtp" или "smtps".
from_emailАдрес отправителя (он же логин для аутентификации).
passwordПароль для аутентификации.
from_nameОтображаемое имя отправителя.

Definition at line 6 of file email_sender.cpp.

References m_from, m_password, and m_smtp_url.

◆ ~EmailSender()

EmailSender::~EmailSender ( )

Деструктор. Очищает списки получателей и вложений.

Definition at line 17 of file email_sender.cpp.

References m_attachments, m_ccs, and m_recvs.

Member Function Documentation

◆ addAttachment()

void EmailSender::addAttachment ( const std::string & filename)

Прикрепляет файл к письму.

Прикрепить файл к письму.

Parameters
filenameПуть к файлу (абсолютный или относительный).

Definition at line 44 of file email_sender.cpp.

References m_attachments.

◆ addCcEmailAddr()

void EmailSender::addCcEmailAddr ( const std::string & email_addr,
const std::string & name = "" )

Добавляет получателя в скрытую копию.

Добавить получателя в скрытую копию.

Parameters
email_addrE-mail получателя копии.
nameОтображаемое имя получателя.

Definition at line 38 of file email_sender.cpp.

References m_ccs.

Referenced by Daemon::sendOrders().

◆ addRecvEmailAddr()

void EmailSender::addRecvEmailAddr ( const std::string & email_addr,
const std::string & name = "" )

Добавляет получателя в список "Кому".

Добавить получателя в поле "Кому".

Parameters
email_addrE-mail получателя.
nameОтображаемое имя получателя.

Definition at line 32 of file email_sender.cpp.

References m_recvs.

Referenced by Daemon::sendOrders().

◆ send()

int EmailSender::send ( )

Отправляет письмо через SMTP (libcurl).

Отправить письмо.

Returns
SUCCESS при успешной отправке, FAILURE при ошибке.

Definition at line 49 of file email_sender.cpp.

References FAILURE, m_attachments, m_ccs, m_email_body, m_email_subject, m_from, m_password, m_recvs, m_smtp_url, and SUCCESS.

Referenced by Daemon::sendOrders().

◆ setEmailContent()

void EmailSender::setEmailContent ( const std::string & subject = "",
const std::string & body = "" )

Устанавливает тему и тело письма.

Установить тему и тело письма.

Parameters
subjectТема письма.
bodyТело письма (HTML или plain text).

Definition at line 24 of file email_sender.cpp.

References m_email_body, and m_email_subject.

Referenced by Daemon::sendOrders().

Member Data Documentation

◆ m_attachments

std::vector<std::string> EmailSender::m_attachments
private

Список прикреплённых файлов.

Definition at line 65 of file email_sender.h.

Referenced by addAttachment(), send(), and ~EmailSender().

◆ m_ccs

std::vector<std::pair<std::string, std::string> > EmailSender::m_ccs
private

Список получателей копии (email, имя).

Definition at line 62 of file email_sender.h.

Referenced by addCcEmailAddr(), send(), and ~EmailSender().

◆ m_email_body

std::string EmailSender::m_email_body
private

Тело письма.

Definition at line 64 of file email_sender.h.

Referenced by send(), and setEmailContent().

◆ m_email_subject

std::string EmailSender::m_email_subject
private

Тема письма.

Definition at line 63 of file email_sender.h.

Referenced by send(), and setEmailContent().

◆ m_from

std::pair<std::string, std::string> EmailSender::m_from
private

Пара (email, имя отправителя).

Definition at line 57 of file email_sender.h.

Referenced by EmailSender(), and send().

◆ m_password

std::string EmailSender::m_password
private

Пароль для аутентификации.

Definition at line 58 of file email_sender.h.

Referenced by EmailSender(), and send().

◆ m_recvs

std::vector<std::pair<std::string, std::string> > EmailSender::m_recvs
private

Список получателей (email, имя).

Definition at line 60 of file email_sender.h.

Referenced by addRecvEmailAddr(), send(), and ~EmailSender().

◆ m_smtp_url

std::string EmailSender::m_smtp_url
private

URL SMTP-сервера (protocol://server:port).

Definition at line 55 of file email_sender.h.

Referenced by EmailSender(), and send().


The documentation for this class was generated from the following files: