ارسال/دریافت ایمیلها با محتوای 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 نگهداری میشود، یک کتابخانه مشتری SMTP مبتنی بر Qt است که برای سادگی استفاده، انعطافپذیری و استحکام طراحی شده است. چه در حال ساخت یک برنامه دسکتاپ باشید و چه یک سرویس پسزمینه در C++، این کتابخانه رابطی تمیز و عملی برای ارسال ایمیل فراهم میکند. اگر از فریمورکهایی مانند Cutelyst یا Wt استفاده میکنید، SimpleMail گزینهای طبیعی برای ارسال اعلانهای کاربری یا ایمیلهای تراکنشی است. SimpleMail نسیمی تازه برای توسعهدهندگان C++ است که میخواهند قابلیتهای ایمیل را مستقیماً در برنامههای خود ادغام کنند. با ردپای کوچک، پشتیبانی قوی از پروتکلهای مدرن ایمیل و ادغام یکپارچه با فریمورک Qt، دقیقاً همان چیزی را ارائه میدهد که بسیاری از توسعهدهندگان C++ منتظر آن بودند.
شروع کار با SimpleMail
روش پیشنهادی برای نصب SimpleMail استفاده از GitHub است. لطفاً برای نصب روان از فرمان زیر استفاده کنید.
نصب SimpleMail از طریق 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 و سرورهای سفارشی را تضمین میکند. در زیر یک قطعه کد مفید نشان میدهد چگونه توسعهدهندگان C++ میتوانند تنظیمات 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) پشتیبانی میکند. هنگام پیکربندی SmtpServer میتوانید ConnectionType را به Ssl یا Tls تنظیم کنید تا ارتباط با سرور ایمیل رمزنگاری شود. این کار محتوای ایمیل و اعتبارهای احراز هویت را از دسترسی غیرمجاز محافظت میکند.