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 to jest SimpleMail?
W świecie nowoczesnego rozwoju w C++, efektywne i bezpieczne obsługiwanie funkcji e-mail jest kluczowe dla wielu zastosowań — od systemów powiadomień po weryfikację użytkowników. Choć wiele języków wysokiego poziomu oferuje rozbudowane biblioteki do obsługi e-maili SMTP, C++ historycznie brakowało naprawdę lekkiego i prostego rozwiązania. SimpleMail to biblioteka C++ oparta na modułach QtCore i QtNetwork. Zapewnia prosty interfejs do wysyłania wiadomości e-mail zgodnych z MIME poprzez serwery SMTP, w tym obsługę szyfrowania SSL/TLS, uwierzytelniania SMTP, treści w formacie zwykłego tekstu i HTML, załączników, wielu odbiorców (Do, DW, UDW) i tak dalej. Urządzenia monitorujące warunki (np. czujniki temperatury lub bramki inteligentnego domu) mogą używać SimpleMail do powiadamiania użytkowników o nieprawidłowościach.
SimpleMail jest minimalistyczną, a jednocześnie potężną biblioteką, która pozwala aplikacjom C++ wysyłać e-maile z załącznikami, treścią HTML i nie tylko poprzez SMTP. Utrzymywana na GitHub, SimpleMail to biblioteka klienta SMTP oparta na Qt, zaprojektowana pod kątem łatwości użycia, elastyczności i niezawodności. Niezależnie od tego, czy tworzysz aplikację desktopową, czy demona po stronie serwera w C++, biblioteka zapewnia czysty i praktyczny interfejs do wysyłania e-maili. Jeśli używasz frameworków takich jak Cutelyst lub Wt, SimpleMail naturalnie pasuje do wysyłania powiadomień użytkowników lub e-maili transakcyjnych. SimpleMail to powiew świeżości dla programistów C++ szukających integracji funkcji e-mail bezpośrednio w swoich aplikacjach. Dzięki małemu rozmiarowi, silnemu wsparciu nowoczesnych protokołów e-mail oraz płynnej integracji z frameworkiem Qt, oferuje dokładnie to, na co czekali liczni programiści C++.
Rozpoczęcie pracy z SimpleMail
Zalecany sposób instalacji SimpleMail to użycie GitHub. Proszę użyć poniższego polecenia, aby przeprowadzić płynną instalację.
zainstaluj SimpleMail przez GitHub
git clone https://github.com/cutelyst/simple-mail.gitTworzenie e-maila HTML za pomocą API C++
Otwartoźródłowa biblioteka SimpleMail obsługuje wysyłanie e-maili zarówno w formacie zwykłego tekstu, jak i HTML, umożliwiając bogatsze formatowanie wiadomości. Możesz określić ciało w HTML, aby uzyskać atrakcyjne wizualnie e-maile, jednocześnie zapewniając alternatywny tekst w zwykłym formacie dla klientów poczty, które nie obsługują HTML lub dla użytkowników, którzy wolą taką wersję. Biblioteka ułatwia wysyłanie sformatowanych e-maili z obrazami lub własnymi stylami, ponieważ pozwala na umieszczanie treści HTML w wiadomości. Poniższe fragmenty kodu pokazują, jak programiści mogą wysłać e-mail HTML z osadzonymi obrazami.
Jak wysłać e-mail HTML z osadzonymi obrazami za pomocą API C++?
#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;
}
Obsługa SMTP z uwierzytelnianiem
Otwartoźródłowa biblioteka SimpleMail zapewnia pełne wsparcie uwierzytelniania SMTP w aplikacjach C++. Biblioteka obsługuje zarówno metodę plain, jak i login. Zapewnia to kompatybilność z większością serwerów SMTP, w tym Gmail, Outlook i serwerami własnymi. Poniżej przydatny fragment kodu, który pokazuje, jak łatwo programiści C++ mogą skonfigurować ustawienia SMTP, w tym STARTTLS na porcie 587.
Jak skonfigurować ustawienia SMTP w aplikacjach C++?
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");
Wysyłanie e-maili z załącznikami w C++
Dodawanie załączników do e-maili jest powszechnym wymogiem, a SimpleMail obsługuje to bezproblemowo. Biblioteka ułatwia tworzenie nowych e-maili i dołączanie plików do wiadomości przy użyciu kilku linii kodu. Zajmuje się kodowaniem załącznika i ustawianiem odpowiednich typów MIME. Programiści mogą określić ścieżkę do pliku oraz opcjonalnie własną nazwę pliku załącznika. Poniższy przykład pokazuje, jak programiści mogą wysłać e-mail z załącznikami plików za pomocą API C++.
Jak wysłać wiadomość e-mail z załącznikami plików przy użyciu biblioteki C++?
#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;
}
Lepsze bezpieczeństwo dzięki wsparciu SSL/TLS
Bezpieczeństwo jest kluczowe przy obsłudze e-maili. Biblioteka SimpleMail obsługuje bezpieczne połączenia z serwerami SMTP przy użyciu SSL (Secure Sockets Layer) i TLS (Transport Layer Security). Podczas konfigurowania serwera SMTP możesz określić typ połączenia jako Ssl lub Tls, aby zapewnić szyfrowanie komunikacji z serwerem pocztowym. Chroni to treść e-maili oraz dane uwierzytelniające przed przechwyceniem.