Envoyer/Recevoir des e‑mails avec du contenu HTML via une bibliothèque C++ gratuite
Bibliothèque C++ open source d’e‑mail pour l’envoi et la réception d’e‑mails, avec prise en charge de l’authentification moderne, du formatage MIME, des pièces jointes, SMTP, du contenu HTML et du chiffrement SSL/TLS.
Qu’est‑ce que SimpleMail ?
Dans le monde du développement C++ moderne, gérer la fonctionnalité d’e‑mail de façon efficace et sécurisée est crucial pour une grande variété d’applications — des systèmes de notification aux vérifications d’utilisateurs. Bien que de nombreux langages de haut niveau offrent des bibliothèques riches pour la gestion d’e‑mail SMTP, le C++ a historiquement manqué d’une solution réellement légère et simple. SimpleMail est une bibliothèque C++ construite au‑dessus des modules QtCore et QtNetwork. Elle fournit une interface simple pour envoyer des messages e‑mail conformes à MIME via des serveurs SMTP, incluant la prise en charge du chiffrement SSL/TLS, de l’authentification SMTP, du contenu texte brut et HTML, des pièces jointes, de multiples destinataires (À, Cc, Bcc) et bien plus. Les appareils qui surveillent des conditions (par ex. capteurs de température ou passerelles domotiques) peuvent utiliser SimpleMail pour alerter les utilisateurs en cas d’anomalies.
SimpleMail est une bibliothèque minimaliste mais puissante qui permet aux applications C++ d’envoyer des e‑mails avec pièces jointes, contenu HTML et plus via SMTP. Maintenue sur GitHub, SimpleMail est une bibliothèque cliente SMTP basée sur Qt, conçue pour la facilité d’utilisation, la flexibilité et la robustesse. Que vous construisiez une application de bureau ou un démon côté serveur en C++, la bibliothèque offre une interface claire et pratique pour l’envoi d’e‑mails. Si vous utilisez des frameworks comme Cutelyst ou Wt, SimpleMail s’intègre naturellement pour envoyer des notifications utilisateur ou des e‑mails transactionnels. SimpleMail représente une bouffée d’air frais pour les développeurs C++ souhaitant intégrer directement des capacités d’e‑mail dans leurs applications. Avec une petite empreinte, un fort support des protocoles e‑mail modernes et une intégration transparente avec le framework Qt, elle offre exactement ce que de nombreux développeurs C++ attendaient.
Commencer avec SimpleMail
La façon recommandée d’installer SimpleMail est d’utiliser GitHub. Veuillez exécuter la commande suivante pour une installation fluide.
installer SimpleMail via GitHub
git clone https://github.com/cutelyst/simple-mail.gitCréer un e‑mail HTML via l’API C++
La bibliothèque open source SimpleMail prend en charge l’envoi d’e‑mails avec du texte brut et du contenu HTML, permettant un formatage plus riche. Vous pouvez spécifier un corps HTML pour des e‑mails visuellement attrayants tout en fournissant une alternative texte brut pour les clients qui ne supportent pas le HTML ou pour les utilisateurs qui le préfèrent. La bibliothèque facilite l’envoi d’e‑mails formatés avec images ou styles personnalisés, car elle autorise le contenu HTML dans votre message. Le fragment de code suivant montre comment les développeurs peuvent envoyer un e‑mail HTML avec des images intégrées.
Comment envoyer un e‑mail HTML avec des images intégrées via l’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;
}
Prise en charge SMTP avec authentification
La bibliothèque open source SimpleMail offre une prise en charge complète de l’authentification SMTP dans les applications C++. La bibliothèque supporte les méthodes d’authentification plain et login. Cela garantit la compatibilité avec la plupart des serveurs SMTP, y compris Gmail, Outlook et les serveurs personnalisés. Voici un extrait de code utile montrant comment les développeurs C++ peuvent configurer facilement les paramètres SMTP, y compris STARTTLS sur le port 587.
Comment configurer les paramètres SMTP dans les applications 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");
Envoyer des e‑mails avec pièces jointes via C++
Ajouter des pièces jointes à vos e‑mails est une exigence courante, et SimpleMail gère cela sans problème. La bibliothèque facilite la génération de nouveaux e‑mails et l’attachement de fichiers à ces messages en quelques lignes seulement. Elle se charge de l’encodage de la pièce jointe et du réglage des types MIME appropriés. Les développeurs peuvent spécifier le chemin du fichier et, éventuellement, un nom de fichier personnalisé pour la pièce jointe. L’exemple suivant montre comment les développeurs peuvent envoyer un e‑mail avec des pièces jointes via l’API C++.
Comment envoyer un message e‑mail avec des pièces jointes via la bibliothèque 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;
}
Meilleure sécurité avec la prise en charge SSL/TLS
La sécurité est primordiale lorsqu’il s’agit d’e‑mail. La bibliothèque SimpleMail prend en charge les connexions sécurisées aux serveurs SMTP en utilisant SSL (Secure Sockets Layer) et TLS (Transport Layer Security). Lors de la configuration du serveur SMTP, vous pouvez spécifier le type de connexion comme Ssl ou Tls afin de garantir que la communication avec le serveur de messagerie est chiffrée. Cela protège le contenu de l’e‑mail et les informations d’authentification contre toute interception.