इस दस्तावेज़ में, Gmail API का इस्तेमाल करके ईमेल मैसेज बनाने और भेजने का तरीका बताया गया है.
Gmail API का इस्तेमाल करके ईमेल भेजने के दो तरीके हैं:
- इसे सीधे तौर पर
messages.sendतरीके का इस्तेमाल करके भेजा जा सकता है. drafts.sendतरीके का इस्तेमाल करके, इसे ड्राफ़्ट से भेजा जा सकता है. ड्राफ़्ट मैसेज भेजने के बारे में ज़्यादा जानने के लिए, ड्राफ़्ट मैसेज भेजना लेख पढ़ें.
Gmail मैसेज, messages रिसॉर्स के raw फ़ील्ड में, base64URL कोड में बदली गई स्ट्रिंग के तौर पर भेजे जाते हैं. ईमेल भेजने के लिए:
- ईमेल का कॉन्टेंट बनाएं और उसे base64URL स्ट्रिंग के तौर पर एन्कोड करें.
- एक नई मैसेज रिसॉर्स बनाएं और उसकी
rawप्रॉपर्टी को, अभी बनाई गई base64URL स्ट्रिंग पर सेट करें. - मैसेज भेजने के लिए,
messages.sendतरीके को कॉल करें. अगर ड्राफ़्ट भेजा जा रहा है, तोdrafts.sendतरीके को कॉल करें.
क्लाइंट लाइब्रेरी और प्रोग्रामिंग भाषा के हिसाब से, इस वर्कफ़्लो की जानकारी अलग-अलग हो सकती है.
मैसेज बनाना
Gmail API के लिए, MIME फ़ॉर्मैट वाले ईमेल मैसेज ज़रूरी हैं. ये मैसेज, RFC 2822 के मुताबिक होने चाहिए और इन्हें base64URL स्ट्रिंग के तौर पर कोड में बदला जाना चाहिए. कई प्रोग्रामिंग भाषाओं में ऐसी लाइब्रेरी या यूटिलिटी होती हैं जो MIME मैसेज बनाने और उन्हें कोड में बदलने की प्रोसेस को आसान बनाती हैं.
यहां दिए गए कोड के उदाहरणों में, अलग-अलग भाषाओं के लिए Google API क्लाइंट लाइब्रेरी का इस्तेमाल करके, MIME मैसेज बनाने का तरीका बताया गया है:
Java
MimeMessage पैकेज में मौजूद MimeMessage क्लास की मदद से, ईमेल मैसेज आसानी से बनाया जा सकता है.javax.mail.internet यहां दिए गए कोड सैंपल में, हेडर के साथ ईमेल मैसेज बनाने का तरीका बताया गया है:
इसके बाद, MimeMessage को एन्कोड करें, messages ऑब्जेक्ट को इंस्टैंशिएट करें, और base64URL में एन्कोड की गई मैसेज स्ट्रिंग को raw प्रॉपर्टी की वैल्यू के तौर पर सेट करें.
Python
यहां दिए गए कोड के सैंपल में, MIME मैसेज बनाने, उसे base64URL स्ट्रिंग में एन्कोड करने, और उसे messages संसाधन के raw फ़ील्ड में असाइन करने का तरीका बताया गया है:
cURL
curl --request POST \
'https://gmail.googleapis.com/gmail/v1/users/me/drafts' \
--header 'Authorization: Bearer ACCESS_TOKEN' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--data '{"message":{"raw":"MESSAGE"}}'
इनकी जगह ये डालें:
ACCESS_TOKEN: यह ऐक्सेस टोकन है, जो एपीआई का ऐक्सेस देता है.MESSAGE: RFC 2822 फ़ॉर्मैट में MIME मैसेज, जिसे base64URL के तौर पर कोड में बदला गया है.
अटैचमेंट वाले मैसेज बनाना
अटैचमेंट के साथ मैसेज बनाना, किसी अन्य मैसेज को बनाने जैसा ही होता है. हालांकि, फ़ाइल को मल्टी-पार्ट MIME मैसेज के तौर पर अपलोड करने की प्रोसेस, प्रोग्रामिंग भाषा पर निर्भर करती है.
यहां दिए गए कोड सैंपल में, अटैचमेंट के साथ मल्टी-पार्ट MIME मैसेज बनाने के संभावित तरीके दिखाए गए हैं:
Java
यहां दिए गए कोड सैंपल में, मल्टी-पार्ट MIME मैसेज बनाने का तरीका बताया गया है. एनकोडिंग और असाइन करने के चरण, create messages के जैसे ही होते हैं.
Python
मैसेज बनाने के उदाहरण की तरह, इस उदाहरण में भी मैसेज को base64URL में एन्कोड किया जाता है और इसे messages संसाधन के raw फ़ील्ड को असाइन किया जाता है.
cURL
curl --request POST \
'https://gmail.googleapis.com/gmail/v1/users/me/drafts' \
--header 'Authorization: Bearer ACCESS_TOKEN' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--data '{"message":{"raw":"MESSAGE"}}'
इनकी जगह ये डालें:
ACCESS_TOKEN: यह ऐक्सेस टोकन है, जो एपीआई का ऐक्सेस देता है.MESSAGE: RFC 2822 फ़ॉर्मैट वाला MIME मैसेज, जिसमें अटैचमेंट शामिल है. इसे base64URL के तौर पर कोड में बदला गया है.
मैसेज भेजें
मैसेज बनाने के बाद, उसे भेजने के लिए messages.send तरीके के अनुरोध के मुख्य हिस्से में मैसेज की जानकारी दें. यहां दिए गए उदाहरणों में बताया गया है कि ऐसा कैसे किया जा सकता है:
Java
Python
cURL
curl --request POST \
'https://gmail.googleapis.com/gmail/v1/users/me/messages/send' \
--header 'Authorization: Bearer ACCESS_TOKEN' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--data '{"raw":"MESSAGE"}'
इनकी जगह ये डालें:
ACCESS_TOKEN: यह ऐक्सेस टोकन है, जो एपीआई का ऐक्सेस देता है.MESSAGE: RFC 2822 फ़ॉर्मैट में MIME मैसेज, जिसे base64URL के तौर पर कोड में बदला गया है.
अगर आपको किसी ईमेल का जवाब भेजना है और आपको ईमेल को थ्रेड में ग्रुप करना है, तो पक्का करें कि:
Subjectहेडर मेल खाते हैंReferencesऔरIn-Reply-Toहेडर, RFC 2822 स्टैंडर्ड के मुताबिक होते हैं.