שליחת/קבלת אימיילים עם תוכן HTML באמצעות ספרייה חינמית ב‑C++
ספריית דואל קוד פתוח ב‑C++ לשליחת וקבלת הודעות עם תמיכה באימות מודרני, עיצוב MIME, קבצים מצורפים, SMTP, תוכן HTML, והצפנת SSL/TLS.
מהו SimpleMail?
בעולם הפיתוח המודרני ב‑C++, טיפול בפונקציונליות של שליחת דוא"ל בצורה יעילה ובטוחה הוא קריטי למגוון רחב של יישומים — ממערכות התראה ועד אימות משתמשים. בעוד ששפות ברמה גבוהה רבות מציעות ספריות עשירות לטיפול ב‑SMTP, ל‑C++ חסרה עד כה פתרון קל משקל ופשוט באמת. SimpleMail היא ספריית C++ שנבנתה על מודולי QtCore ו‑QtNetwork. היא מספקת ממשק פשוט לשליחת הודעות דוא"ל תואמות MIME דרך שרתי SMTP, כולל תמיכה בהצפנת SSL/TLS, אימות SMTP, תוכן טקסט רגיל ו‑HTML, קבצים מצורפים, מספר נמענים (To, Cc, Bcc) ועוד. מכשירים שמנטרים תנאים (למשל חיישני טמפרטורה או שערי בית חכם) יכולים להשתמש ב‑SimpleMail כדי להתריע למשתמשים במקרה של חריגות.
SimpleMail היא ספרייה מינימליסטית אך חזקה שמאפשרת ליישומי C++ לשלוח אימיילים עם קבצים מצורפים, תוכן HTML ועוד דרך SMTP. הספרייה מתוחזקת ב‑GitHub, SimpleMail היא ספריית לקוח SMTP מבוססת Qt שנועדה לשימוש נוח, גמישות ויציבות. בין אם אתם בונים אפליקציית שולחן עבודה או תהליך רקע בצד השרת ב‑C++, הספרייה מספקת ממשק נקי ופרקטי לשליחת אימיילים. אם אתם משתמשים במסגרות כמו Cutelyst או Wt, SimpleMail מתאימה באופן טבעי לשליחת הודעות למשתמשים או אימיילים עסקיים. SimpleMail היא נשימה של רעננות למפתחי C++ המחפשים לשלב יכולות דוא"ל ישירות באפליקציות שלהם. עם טביעת רגל קטנה, תמיכה חזקה בפרוטוקולי דוא"ל מודרניים, ושילוב חלק עם מסגרת Qt, היא מציעה בדיוק מה שרבים ממפתחי C++ חיכו לו.
התחלה עם SimpleMail
הדרך המומלצת להתקנת SimpleMail היא באמצעות GitHub. אנא השתמשו בפקודה הבאה להתקנה חלקה.
install SimpleMail via GitHub
git clone https://github.com/cutelyst/simple-mail.gitיצירת אימייל HTML באמצעות API של C++
ספריית SimpleMail בקוד פתוח תומכת בשליחת אימיילים עם טקסט רגיל וגם עם תוכן HTML, מה שמאפשר עיצוב עשיר יותר של ההודעות. ניתן לציין גוף HTML לאימיילים שמציגים בצורה ויזואלית מרשימה, ובמקביל לספק חלופה בטקסט רגיל ללקוחות דוא"ל שלא תומכים ב‑HTML או למשתמשים שמעדיפים זאת. הספרייה מקלה על שליחת אימיילים מעוצבים עם תמונות או סגנונות מותאמים, מכיוון שהיא מאפשרת תוכן HTML בהודעה. הקטעים הבאים מראים כיצד מפתחים יכולים לשלוח אימייל HTML עם תמונות משולבות.
איך לשלוח אימייל HTML עם תמונות משולבות באמצעות 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;
}
תמיכה ב‑SMTP עם אימות
ספריית SimpleMail בקוד פתוח מספקת תמיכה מלאה באימות SMTP בתוך אפליקציות C++. הספרייה תומכת בשיטות אימות plain ו‑login. זה מבטיח תאימות לרוב שרתי ה‑SMTP, כולל Gmail, Outlook, ושרתים מותאמים. להלן קטע קוד שימושי שמראה כמה בקלות מפתחים יכולים להגדיר את הגדרות ה‑SMTP, כולל STARTTLS על פורט 587.
איך להגדיר הגדרות SMTP בתוך אפליקציות 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");
שליחת אימיילים עם קבצים מצורפים באמצעות C++
הוספת קבצים מצורפים לאימיילים היא דרישה נפוצה, ו‑SimpleMail מטפל בכך בצורה חלקה. הספרייה מאפשרת ליצור אימיילים חדשים ולצרף קבצים להודעות עם כמה שורות קוד בלבד. היא דואגת לקידוד הקובץ והגדרת סוגי MIME המתאימים. מפתחים יכולים לציין את נתיב הקובץ ובחירה לשם קובץ מותאם אישית. הדוגמה שלהלן מציגה כיצד מפתחים יכולים לשלוח אימייל עם קבצים מצורפים באמצעות API של C++.
איך לשלוח הודעת אימייל עם קבצים מצורפים באמצעות ספריית 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;
}
אבטחה משופרת עם תמיכת SSL/TLS
אבטחה היא קריטית בעת טיפול באימיילים. ספריית SimpleMail תומכת בחיבורים מאובטחים לשרתי SMTP באמצעות SSL (Secure Sockets Layer) ו‑TLS (Transport Layer Security). כאשר מגדירים את שרת ה‑SMTP, ניתן לציין את ConnectionType כ‑Ssl או Tls כדי להבטיח שהתקשורת עם שרת הדואר מוצפנת. כך מוגנים תוכן האימייל ופרטי האימות מפני יירוט.