C++ पर ईमेल भेजना: libcurl और SMTP क्लाइंट

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

C++ पर ईमेल भेजना: लाइब्रेरी और टूल का अवलोकन

\n

ईमेल भेजना कई एप्लिकेशनों के लिए एक बुनियादी कार्य है: मॉनिटरिंग सिस्टम से लेकर उपयोगकर्ता सूचनाओं तक। C++ पर यह कार्य कई तरीकों से हल किया जाता है - सीधे सॉकेट के उपयोग से लेकर शक्तिशाली लाइब्रेरी तक जो एन्क्रिप्शन, MIME और अटैचमेंट को सपोर्ट करती हैं। इस लेख में हम C++ पर ईमेल भेजने के लिए सर्वोत्तम टूल की समीक्षा करेंगे और कोड उदाहरण दिखाएंगे।

\n\n

C++ में ईमेल क्यों भेजें?

\n

C++ नेटवर्क कनेक्शन, प्रदर्शन और मेमोरी पर पूर्ण नियंत्रण देता है। हालांकि, C++ की मानक लाइब्रेरी में मेल प्रोटोकॉल (SMTP, POP3, IMAP) के लिए अंतर्निहित सुविधाएँ नहीं हैं। इसलिए डेवलपर्स या तो तृतीय-पक्ष लाइब्रेरी का उपयोग करते हैं या सॉकेट के माध्यम से मैन्युअल रूप से प्रोटोकॉल लागू करते हैं। हम तैयार समाधानों पर ध्यान केंद्रित करेंगे जो समय बचाते हैं और स्थिरता सुनिश्चित करते हैं।

\n\n

C++ पर ईमेल भेजने के लिए मुख्य लाइब्रेरी

\n
    \n
  • libcurl - डेटा ट्रांसफर के लिए सबसे लोकप्रिय क्रॉस-प्लेटफ़ॉर्म लाइब्रेरी। SMTP, SSL/TLS के साथ SMTP, प्रमाणीकरण और MIME अटैचमेंट को सपोर्ट करती है।
  • \n
  • VMime - ईमेल के लिए विशेष लाइब्रेरी। MIME, S/MIME एन्क्रिप्शन, कस्टम हेडर और सभी मेल प्रोटोकॉल का पूर्ण समर्थन।
  • \n
  • c-icap और libESMTP - निचले स्तर की लाइब्रेरी, SMTP सत्रों पर केंद्रित।
  • \n
  • Boost.Asio + स्वयं का SMTP कार्यान्वयन - उन लोगों के लिए जो न्यूनतम निर्भरता चाहते हैं और प्रोटोकॉल मैन्युअल रूप से लिखने को तैयार हैं।
  • \n
\n

इस लेख में हम libcurl पर विस्तार से ध्यान केंद्रित करेंगे, क्योंकि यह सबसे बहुमुखी और व्यापक रूप से उपयोग की जाती है।

\n\n

libcurl की स्थापना

\n

libcurl के साथ काम शुरू करने के लिए इसे स्थापित करना आवश्यक है:

\n
    \n
  • Linux (Ubuntu/Debian): sudo apt install libcurl4-openssl-dev
  • \n
  • macOS: brew install curl
  • \n
  • Windows: आधिकारिक वेबसाइट से पूर्व-निर्मित बाइनरी डाउनलोड करें या vcpkg का उपयोग करें: vcpkg install curl
  • \n
\n\n

उदाहरण 1: Gmail के माध्यम से सरल ईमेल भेजना (SSL)

\n

इस उदाहरण में SSL एन्क्रिप्शन के साथ Gmail के SMTP सर्वर के माध्यम से ईमेल भेजने के लिए libcurl का उपयोग किया गया है।

\n
#include <stdio.h>\n#include <string.h>\n#include <curl/curl.h>\n\nint main(void) {\n    CURL *curl;\n    CURLcode res;\n\n    curl_global_init(CURL_GLOBAL_DEFAULT);\n    curl = curl_easy_init();\n\n    if(curl) {\n        // SMTP सेटिंग्स\n        curl_easy_setopt(curl, CURLOPT_URL, "smtps://smtp.gmail.com:465");\n        curl_easy_setopt(curl, CURLOPT_USE_SSL, CURLUSESSL_ALL);\n        curl_easy_setopt(curl, CURLOPT_USERNAME, "आपका.email@gmail.com");\n        curl_easy_setopt(curl, CURLOPT_PASSWORD, "ऐप_पासवर्ड");\n\n        // प्रेषक और प्राप्तकर्ता\n        curl_easy_setopt(curl, CURLOPT_MAIL_FROM, "<आपका.email@gmail.com>");\n        struct curl_slist *recipients = NULL;\n        recipients = curl_slist_append(recipients, "<प्राप्तकर्ता@example.com>");\n        curl_easy_setopt(curl, CURLOPT_MAIL_RCPT, recipients);\n\n        // ईमेल का टेक्स्ट\n        const char *payload_text = \n            "From: आपका नाम <आपका.email@gmail.com>\\r\\n"\n            "To: प्राप्तकर्ता <प्राप्तकर्ता@example.com>\\r\\n"\n            "Subject: C++ से परीक्षण ईमेल\\r\\n"\n            "\\r\\n"\n            "नमस्ते! यह ईमेल C++ पर libcurl के माध्यम से भेजा गया है।\\r\\n";\n\n        curl_easy_setopt(curl, CURLOPT_READDATA, payload_text);\n        curl_easy_setopt(curl, CURLOPT_UPLOAD, 1L);\n\n        // निष्पादन\n        res = curl_easy_perform(curl);\n        if(res != CURLE_OK)\n            fprintf(stderr, "त्रुटि: %s\\n", curl_easy_strerror(res));\n        else\n            printf("ईमेल भेज दिया गया!\\n");\n\n        curl_slist_free_all(recipients);\n        curl_eas                    

अनुशंसाएँ