Skicka/Motta e‑post med HTML‑innehåll via gratis C++‑bibliotek
Open Source C++‑e‑postbibliotek för att skicka och ta emot e‑post med stöd för modern autentisering, MIME‑formatering, bilagor, SMTP, HTML‑innehåll och SSL/TLS‑kryptering.
Vad är SimpleMail?
I den moderna C++‑utvecklingens värld är hantering av e‑postfunktionalitet på ett effektivt och säkert sätt avgörande för en mängd olika applikationer – från notifieringssystem till användarverifieringar. Medan många hög nivå‑språk erbjuder omfattande bibliotek för SMTP‑e‑posthantering har C++ historiskt saknat en riktigt lättviktig och enkel lösning. SimpleMail är ett C++‑bibliotek byggt ovanpå QtCore‑ och QtNetwork‑modulerna. Det tillhandahåller ett enkelt gränssnitt för att skicka MIME‑kompatibla e‑postmeddelanden via SMTP‑servrar, inklusive stöd för SSL/TLS‑kryptering, SMTP‑autentisering, ren text‑ och HTML‑meddelandinnehåll, filbilagor, flera mottagare (Till, Kopia, Dold kopia) med mera. Enheter som övervakar förhållanden (t.ex. temperatursensorer eller smarta hem‑gateways) kan använda SimpleMail för att varna användare vid avvikelser.
SimpleMail är ett minimalistiskt men kraftfullt bibliotek som låter C++‑applikationer skicka e‑post med bilagor, HTML‑innehåll och mer via SMTP. Underhållet på GitHub är SimpleMail ett Qt‑baserat SMTP‑klientbibliotek designat för enkel användning, flexibilitet och robusthet. Oavsett om du bygger en skrivbordsapp eller en server‑daemon i C++ ger biblioteket ett rent och praktiskt gränssnitt för att skicka e‑post. Om du använder ramverk som Cutelyst eller Wt är SimpleMail ett naturligt val för att skicka användarrelaterade notifieringar eller transaktions‑e‑post. SimpleMail är en frisk fläkt för C++‑utvecklare som vill integrera e‑postfunktioner direkt i sina applikationer. Med ett litet fotavtryck, starkt stöd för moderna e‑postprotokoll och sömlös integration med Qt‑ramverket erbjuder det exakt det som många C++‑utvecklare har väntat på.
Komma igång med SimpleMail
Det rekommenderade sättet att installera SimpleMail är via GitHub. Använd följande kommando för en smidig installation.
install SimpleMail via GitHub
git clone https://github.com/cutelyst/simple-mail.gitSkapa HTML‑e‑post via C++‑API
Det öppna källkods‑biblioteket SimpleMail stödjer att skicka e‑post med både ren text och HTML‑innehåll, vilket möjliggör rikare e‑postformatering. Du kan ange en HTML‑kropp för visuellt tilltalande e‑post samtidigt som du tillhandahåller ett ren‑text‑alternativ för e‑postklienter som inte stödjer HTML eller för användare som föredrar det. Biblioteket gör det enkelt att skicka formaterade e‑postmeddelanden med bilder eller anpassade stilar, eftersom det tillåter HTML‑innehåll i ditt meddelande. Följande kodexempel visar hur mjukvaruutvecklare kan skicka en HTML‑e‑post med inbäddade bilder.
Hur skickar man en HTML‑e‑post med inbäddade 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öd med autentisering
Det öppna källkods‑biblioteket SimpleMail har fullständigt stöd för SMTP‑autentisering i C++‑applikationer. Biblioteket stödjer både enkel och inloggnings‑autentiseringsmetoder. Detta säkerställer kompatibilitet med de flesta SMTP‑servrar, inklusive Gmail, Outlook och anpassade servrar. Här är ett användbart kodexempel som visar hur enkelt C++‑utvecklare kan konfigurera SMTP‑inställningar, inklusive STARTTLS på port 587.
Hur konfigurerar man SMTP‑inställningar i C++‑appar?
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");
Skicka e‑post med bilagor via C++
Att lägga till bilagor i dina e‑postmeddelanden är ett vanligt krav, och SimpleMail hanterar detta sömlöst. Biblioteket gör det enkelt att skapa nya e‑postmeddelanden och bifoga filer till dessa med bara ett par rader. Det tar hand om kodning av bilagan och att sätta rätt MIME‑typer. Utvecklare kan ange filsökvägen och eventuellt ett eget filnamn för bilagan. Följande exempel visar hur mjukvaruutvecklare kan skicka ett e‑postmeddelande med filbilagor via C++‑API.
Hur skickar man ett e‑postmeddelande med filbilagor 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;
}
Bättre säkerhet med SSL/TLS‑stöd
Säkerhet är av största vikt när man hanterar e‑post. SimpleMail‑biblioteket stödjer säkra anslutningar till SMTP‑servrar med SSL (Secure Sockets Layer) och TLS (Transport Layer Security). När du konfigurerar SmtpServer kan du ange ConnectionType som Ssl eller Tls för att säkerställa att kommunikationen med e‑postservern är krypterad. Detta skyddar e‑postinnehållet och autentiseringsuppgifterna från att avlyssnas.