Send/Receive Emails with HTML Content via Free C++ Library
Open Source C++ Email Library for Emails Sending & Receiving with Support for Modern Authentication, MIME Formatting, Attachments, SMTP, HTML Content, and SSL/TLS Encryption.
Co je SimpleMail?
Ve světě moderního vývoje v C++ je efektivní a bezpečné zpracování e‑mailové funkčnosti klíčové pro širokou škálu aplikací – od notifikačních systémů po ověřování uživatelů. Zatímco mnoho vyšších programovacích jazyků nabízí bohaté knihovny pro práci se SMTP e‑mailem, C++ historicky postrádal skutečně lehké a jednoduché řešení. SimpleMail je C++ knihovna postavená na modulech QtCore a QtNetwork. Poskytuje jednoduché rozhraní pro odesílání MIME‑kompatibilních e‑mailových zpráv přes SMTP servery, včetně podpory SSL/TLS šifrování, SMTP autentizace, textového i HTML obsahu zprávy, příloh souborů, více příjemců (To, Cc, Bcc) a dalších. Zařízení monitorující podmínky (např. teplotní senzory nebo brány chytrých domů) mohou SimpleMail použít k upozornění uživatelů v případě anomálií.
SimpleMail je minimalistická, ale výkonná knihovna, která umožňuje aplikacím v C++ odesílat e‑maily s přílohami, HTML obsahem a dalšími funkcemi přes SMTP. Udržovaná na GitHubu, SimpleMail je Qt‑založená SMTP klientská knihovna navržená pro snadné použití, flexibilitu a robustnost. Ať už vytváříte desktopovou aplikaci nebo serverový démon v C++, knihovna poskytuje čisté a praktické rozhraní pro odesílání e‑mailů. Pokud používáte frameworky jako Cutelyst nebo Wt, SimpleMail je přirozenou volbou pro odesílání uživatelských notifikací nebo transakčních e‑mailů. SimpleMail je osvěžujícím dechem pro vývojáře C++, kteří chtějí integrovat e‑mailové schopnosti přímo do svých aplikací. S malou velikostí, silnou podporou moderních e‑mailových protokolů a bezproblémovou integrací s Qt frameworkem nabízí přesně to, na co mnoho vývojářů C++ čekalo.
Začínáme se SimpleMail
Doporučený způsob instalace SimpleMail je pomocí GitHubu. Použijte následující příkaz pro snadnou instalaci.
instalace SimpleMail přes GitHub
git clone https://github.com/cutelyst/simple-mail.gitVytvoření HTML e‑mailu pomocí C++ API
Open source knihovna SimpleMail podporuje odesílání e‑mailů jak v prostém textu, tak v HTML, což umožňuje bohatší formátování. Můžete specifikovat HTML tělo pro vizuálně atraktivní e‑maily a zároveň poskytnout prostý text jako alternativu pro klienty, kteří HTML nepodporují, nebo pro uživatele, kteří jej preferují. Knihovna usnadňuje odesílání formátovaných e‑mailů s obrázky nebo vlastními styly, protože umožňuje vložit HTML obsah do zprávy. Následující úryvek kódu ukazuje, jak mohou vývojáři odeslat HTML e‑mail s vloženými obrázky.
Jak odeslat HTML e‑mail s vloženými obrázky pomocí C++ API?
#include
int main() {
SimpleMail::Mailer mailer("smtp.gmail.com", 587);
mailer.setUsername("your-email@gmail.com");
mailer.setPassword("your-password");
SimpleMail::Mail mail;
mail.setSender("your-email@gmail.com");
mail.addTo("recipient@example.com");
mail.setSubject("HTML Email with Image");
// HTML content with an embedded image
mail.setBody(
"Welcome!
"
"This is an HTML email with an inline image:
"
"
",
SimpleMail::Mail::BodyType::Html
);
// Attach an image and reference it in HTML using CID
mail.addAttachment("logo.png", "logo", "image/png");
if (mailer.sendMail(mail)) {
std::cout << "HTML email sent successfully!" << std::endl;
} else {
std::cerr << "Error: " << mailer.lastError() << std::endl;
}
return 0;
}
Podpora SMTP s autentizací
Open source knihovna SimpleMail poskytuje kompletní podporu pro SMTP autentizaci v C++ aplikacích. Knihovna podporuje jak metodu plain, tak login autentizaci. To zajišťuje kompatibilitu s většinou SMTP serverů, včetně Gmailu, Outlooku a vlastních serverů. Níže je užitečný úryvek kódu, který ukazuje, jak snadno mohou vývojáři C++ nakonfigurovat SMTP nastavení, včetně STARTTLS na portu 587.
Jak nakonfigurovat SMTP nastavení v C++ aplikacích?
SimpleMail::Sender sender;
sender.setHost("smtp.example.com");
sender.setPort(587);
sender.setConnectionType(SimpleMail::Sender::TlsConnection);
sender.setUser("your-email@example.com");
sender.setPassword("your-password");
Odesílání e‑mailů s přílohami pomocí C++
Přidávání příloh k e‑mailům je běžná požadavek a SimpleMail to zvládá bez problémů. Knihovna umožňuje snadno vytvořit nový e‑mail a připojit soubory k těmto zprávám pouhými několika řádky. Postará se o kódování přílohy a nastavení správných MIME typů. Vývojáři mohou zadat cestu k souboru a volitelně vlastní název souboru pro přílohu. Následující příklad ukazuje, jak mohou vývojáři odeslat e‑mail s přílohami souborů pomocí C++ API.
Jak odeslat e‑mailovou zprávu s přílohami souborů pomocí C++ knihovny?
#include
int main() {
SimpleMail::Mailer mailer("smtp.example.com", 465);
mailer.setUsername("user@example.com");
mailer.setPassword("password");
mailer.setSsl(true); // Enable SSL for secure connection
SimpleMail::Mail mail;
mail.setSender("user@example.com");
mail.addTo("client@example.com");
mail.setSubject("Invoice Attached");
mail.setBody("Please find the attached invoice.");
// Attach a PDF file
mail.addAttachment("/path/to/invoice.pdf", "invoice.pdf", "application/pdf");
if (mailer.sendMail(mail)) {
std::cout << "Email with attachment sent!" << std::endl;
} else {
std::cerr << "Error: " << mailer.lastError() << std::endl;
}
return 0;
}
Lepší zabezpečení s podporou SSL/TLS
Bezpečnost je při práci s e‑mailem zásadní. Knihovna SimpleMail podporuje zabezpečená připojení k SMTP serverům pomocí SSL (Secure Sockets Layer) a TLS (Transport Layer Security). Při konfiguraci SmtpServer můžete nastavit ConnectionType na Ssl nebo Tls, aby komunikace s poštovním serverem byla šifrovaná. To chrání obsah e‑mailu i autentizační údaje před zachycením.