Send/motta e-poster med HTML-innhold via gratis C++-bibliotek
Åpen kildekode C++-e-postbibliotek for sending og mottak av e-poster med støtte for moderne autentisering, MIME-formattering, vedlegg, SMTP, HTML-innhold og SSL/TLS-kryptering.
Hva er SimpleMail?
I dagens moderne C++-utvikling er håndtering av e-postfunksjonalitet på en effektiv og sikker måte avgjørende for et bredt spekter av applikasjoner – fra varslingssystemer til brukerbekreftelser. Mens mange høynivåspråk tilbyr rike biblioteker for SMTP-e-posthåndtering, har C++ historisk manglet en virkelig lettvektig og enkel løsning. SimpleMail er et C++-bibliotek bygget på QtCore- og QtNetwork-modulene. Det gir et enkelt grensesnitt for å sende MIME-kompatible e-postmeldinger via SMTP‑servere, med støtte for SSL/TLS‑kryptering, SMTP‑autentisering, ren tekst‑ og HTML‑meldingsinnhold, filvedlegg, flere mottakere (To, Cc, Bcc) og så videre. Enheter som overvåker forhold (f.eks. temperatursensorer eller smarte hjemme‑gatewayer) kan bruke SimpleMail til å varsle brukere ved avvik.
SimpleMail er et minimalistisk, men kraftig bibliotek som lar C++‑applikasjoner sende e-poster med vedlegg, HTML‑innhold og mer via SMTP. Vedlikeholdt på GitHub, er SimpleMail et Qt‑basert SMTP‑klientbibliotek designet for brukervennlighet, fleksibilitet og robusthet. Enten du bygger en skrivebordsapp eller en server‑side daemon i C++, gir biblioteket et rent og praktisk grensesnitt for å sende e-poster. Hvis du bruker rammeverk som Cutelyst eller Wt, er SimpleMail et naturlig valg for å sende bruker‑relaterte varsler eller transaksjons‑e‑post. SimpleMail er en frisk pust for C++‑utviklere som ønsker å integrere e‑postfunksjonalitet direkte i sine applikasjoner. Med et lite fotavtrykk, sterk støtte for moderne e‑postprotokoller og sømløs integrasjon med Qt‑rammeverket, leverer det akkurat det mange C++‑utviklere har ventet på.
Kom i gang med SimpleMail
Den anbefalte måten å installere SimpleMail på er via GitHub. Vennligst bruk følgende kommando for en smidig installasjon.
install SimpleMail via GitHub
git clone https://github.com/cutelyst/simple-mail.gitOpprett HTML-e-post via C++-API
Det åpne kildekode-biblioteket SimpleMail støtter sending av e-poster med både ren tekst og HTML‑innhold, noe som gir rikere e‑postformatering. Du kan angi en HTML‑kropp for visuelt tiltalende e‑post, samtidig som du tilbyr et ren‑tekst‑alternativ for e‑postklienter som ikke støtter HTML eller for brukere som foretrekker det. Biblioteket gjør det enkelt å sende formaterte e‑poster med bilder eller egendefinerte stiler, fordi det tillater HTML‑innhold i meldingen din. Følgende kodeeksempler viser hvordan utviklere kan sende en HTML‑e‑post med innebygde bilder.
Hvordan sende en HTML‑e‑post med innebygde bilder via 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-støtte med autentisering
Det åpne kildekode-biblioteket SimpleMail har full støtte for SMTP‑autentisering i C++‑applikasjoner. Biblioteket støtter både enkel og login‑autentiseringsmetoder. Dette sikrer kompatibilitet med de fleste SMTP‑servere, inkludert Gmail, Outlook og egendefinerte servere. Her er et nyttig kodeeksempel som viser hvor enkelt C++‑utviklere kan konfigurere SMTP‑innstillinger, inkludert STARTTLS på port 587.
Hvordan konfigurere SMTP‑innstillinger i C++‑apper?
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");
Send e-poster med vedlegg via C++
Å legge vedlegg til e-poster er et vanlig krav, og SimpleMail håndterer dette sømløst. Biblioteket gjør det enkelt å generere nye e-poster og legge ved filer i meldingene med bare noen få linjer. Det tar seg av koding av vedlegget og setter riktige MIME‑typer. Utviklere kan angi filstien og eventuelt et egendefinert filnavn for vedlegget. Følgende eksempel viser hvordan utviklere kan sende en e‑post med filvedlegg via C++‑API.
Hvordan sende en e‑postmelding med filvedlegg via 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;
}
Bedre sikkerhet med SSL/TLS-støtte
Sikkerhet er avgjørende når man håndterer e‑post. SimpleMail‑biblioteket støtter sikre tilkoblinger til SMTP‑servere ved bruk av SSL (Secure Sockets Layer) og TLS (Transport Layer Security). Når du konfigurerer SmtpServer, kan du angi ConnectionType som Ssl eller Tls for å sikre at kommunikasjonen med e‑postserveren er kryptert. Dette beskytter e‑postinnholdet og autentiseringsinformasjonen mot avlytting.