Siųsti/Gauti el. laiškus su HTML turiniu per nemokamą C++ biblioteką
Atviro kodo C++ el. laiškų biblioteka el. laiškų siuntimui ir gavimui, palaikanti modernų autentifikavimą, MIME formatavimą, priedus, SMTP, HTML turinį ir SSL/TLS šifravimą.
Kas yra SimpleMail?
Modernioje C++ plėtros aplinkoje el. laiškų funkcionalumo efektyvus ir saugus valdymas yra būtinas daugybei programų – nuo pranešimų sistemų iki naudotojų patvirtinimo. Nors daugelis aukšto lygio kalbų siūlo turtingas SMTP el. laiškų bibliotekas, C++ tradiciškai trūko tikrai lengvos ir paprastos priemonės. SimpleMail yra C++ biblioteka, sukurta ant QtCore ir QtNetwork modulių. Ji suteikia paprastą sąsają MIME‑suderintų el. laiškų siuntimui per SMTP serverius, įskaitant SSL/TLS šifravimą, SMTP autentifikavimą, paprasto teksto ir HTML turinį, failų priedus, kelis gavėjus (To, Cc, Bcc) ir t.t. Įrenginiai, stebintys sąlygas (pvz., temperatūros jutikliai ar išmaniosios namų vartų sistemos), gali naudoti SimpleMail, kad praneštų naudotojams apie anomalijas.
SimpleMail yra minimalistinė, bet galinga biblioteka, leidžianti C++ programoms siųsti el. laiškus su priedais, HTML turiniu ir kt. per SMTP. Palaikoma GitHub, SimpleMail yra Qt pagrindu sukurta SMTP kliento biblioteka, skirta paprastam naudojimui, lankstumui ir patikimumui. Nesvarbu, ar kuriate darbalaukio programą, ar serverio tarnybą C++, biblioteka suteikia švarią ir praktišką sąsają el. laiškų siuntimui. Jei naudojate tokias sistemas kaip Cutelyst ar Wt, SimpleMail natūraliai tinka vartotojų pranešimams ar transakciniams el. laiškams siųsti. SimpleMail – gaivus poilsis C++ kūrėjams, norintiems tiesiogiai integruoti el. laiškų galimybes į savo programas. Su mažais ištekliais, stipriu šiuolaikinių el. laiškų protokolų palaikymu ir sklandžiu Qt integravimu, ji siūlo būtent tai, ko daugelis C++ kūrėjų laukė.
Pradžia su SimpleMail
Rekomenduojamas būdas įdiegti SimpleMail yra naudojant GitHub. Prašome naudoti šią komandą sklandžiam įdiegimui.
install SimpleMail via GitHub
git clone https://github.com/cutelyst/simple-mail.gitKurti HTML el. laišką per C++ API
Atviro kodo SimpleMail biblioteka palaiko el. laiškų siuntimą tiek paprasto teksto, tiek HTML turinio formatu, suteikdama galimybę kurti patrauklesnį formatavimą. Galite nurodyti HTML turinį, kad laiškai atrodytų patraukliai, kartu pateikdami paprasto teksto alternatyvą el. laiškų klientams, kurie nepalaiko HTML, arba vartotojams, kurie tai pageidauja. Biblioteka supaprastina formatuotų el. laiškų su paveikslėliais ar pasirinktiniais stiliais siuntimą, nes leidžia įterpti HTML turinį į žinutę. Žemiau pateiktas kodo fragmentas rodo, kaip programuotojai gali siųsti HTML el. laišką su įterptais paveikslėliais.
Kaip siųsti HTML el. laišką su įterptais paveikslėliais per 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;
}
SMTP palaikymas su autentifikavimu
Atviro kodo SimpleMail biblioteka suteikia pilną SMTP autentifikavimo palaikymą C++ programose. Biblioteka palaiko tiek paprastą, tiek login autentifikavimo metodus. Tai užtikrina suderinamumą su dauguma SMTP serverių, įskaitant Gmail, Outlook ir pasirinktinius serverius. Žemiau pateiktas naudingas kodo fragmentas rodo, kaip lengvai C++ kūrėjai gali konfigūruoti SMTP nustatymus, įskaitant STARTTLS per 587 prievadą.
Kaip konfigūruoti SMTP nustatymus C++ programose?
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");
Siųsti el. laiškus su priedais per C++
Pridėti priedus prie el. laiškų yra dažnas reikalavimas, o SimpleMail tai tvarko be vargo. Biblioteka leidžia lengvai sukurti naujus el. laiškus ir pridėti failus prie šių žinučių keliais paprastais žingsniais. Ji rūpinasi priedo kodavimu ir tinkamų MIME tipų nustatymu. Kūrėjai gali nurodyti failo kelią ir, jei reikia, pasirinktinį failo pavadinimą priedui. Žemiau pateiktas pavyzdys rodo, kaip programuotojai gali siųsti el. laišką su failų priedais per C++ API.
Kaip siųsti el. laiško žinutę su failų priedais per C++ biblioteką?
#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;
}
Geresnis saugumas su SSL/TLS palaikymu
Saugumas yra esminis el. laiškų tvarkyme. SimpleMail biblioteka palaiko saugius ryšius su SMTP serveriais naudojant SSL (Secure Sockets Layer) ir TLS (Transport Layer Security). Konfigūruojant SmtpServer, galite nurodyti ConnectionType kaip Ssl arba Tls, kad užtikrintumėte, jog komunikacija su pašto serveriu yra šifruota. Tai apsaugo el. laiško turinį ir autentifikacijos duomenis nuo perėmimo.