এই ডকুমেন্টটিতে জিমেইল এপিআই (Gmail API) ব্যবহার করে কীভাবে ইমেইল বার্তা তৈরি ও প্রেরণ করতে হয়, তা ব্যাখ্যা করা হয়েছে।
জিমেইল এপিআই ব্যবহার করে ইমেইল পাঠানোর দুটি উপায় রয়েছে:
- আপনি
messages.sendমেথড ব্যবহার করে এটি সরাসরি পাঠাতে পারেন। - আপনি
drafts.sendমেথড ব্যবহার করে একটি ড্রাফট থেকে এটি পাঠাতে পারেন। ড্রাফট মেসেজ পাঠানোর বিষয়ে আরও তথ্যের জন্য, "ড্রাফট পাঠান" দেখুন।
জিমেইল বার্তাগুলি একটি ' messages রিসোর্সের ' raw ফিল্ডের মধ্যে base64URL এনকোডেড স্ট্রিং হিসাবে পাঠানো হয়। একটি ইমেল বার্তা পাঠাতে:
- ইমেলের বিষয়বস্তু তৈরি করুন এবং এটিকে একটি base64URL স্ট্রিং হিসেবে এনকোড করুন।
- একটি নতুন মেসেজ রিসোর্স তৈরি করুন এবং এর
rawপ্রপার্টিটি আপনার এইমাত্র তৈরি করা base64URL স্ট্রিংটিতে সেট করুন। - মেসেজটি পাঠানোর জন্য
messages.sendমেথডটি কল করুন, অথবা ড্রাফট পাঠানোর ক্ষেত্রেdrafts.sendমেথডটি কল করুন।
আপনার ক্লায়েন্ট লাইব্রেরি এবং প্রোগ্রামিং ভাষা পছন্দের উপর নির্ভর করে এই ওয়ার্কফ্লোর বিস্তারিত বিবরণ ভিন্ন হতে পারে।
বার্তা তৈরি করুন
জিমেইল এপিআই-এর জন্য RFC 2822-এর সাথে সঙ্গতিপূর্ণ এবং base64URL স্ট্রিং হিসাবে এনকোড করা MIME ইমেল বার্তা প্রয়োজন। অনেক প্রোগ্রামিং ভাষায় লাইব্রেরি বা ইউটিলিটি রয়েছে যা MIME বার্তা তৈরি এবং এনকোড করার প্রক্রিয়াকে সহজ করে তোলে।
নিম্নলিখিত কোড নমুনাগুলি দেখায় কিভাবে বিভিন্ন ভাষার জন্য গুগল এপিআই ক্লায়েন্ট লাইব্রেরি ব্যবহার করে একটি MIME বার্তা তৈরি করতে হয়:
জাভা
javax.mail.internet প্যাকেজের MimeMessage ক্লাস ব্যবহার করে ইমেল বার্তা তৈরি করা সহজ করা যায়। নিচের কোড নমুনাটিতে হেডারসহ ইমেল বার্তাটি কীভাবে তৈরি করতে হয় তা দেখানো হয়েছে:
এরপরে, MimeMessage টি এনকোড করুন, একটি messages অবজেক্ট ইনস্ট্যানশিয়েট করুন, এবং base64URL এনকোড করা মেসেজ স্ট্রিংটিকে raw প্রপার্টির ভ্যালু হিসেবে সেট করুন।
পাইথন
নিম্নলিখিত কোড নমুনাটি দেখায় কিভাবে একটি 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: যে অ্যাক্সেস টোকেনটি এপিআই (API)-তে প্রবেশের অনুমতি দেয়। -
MESSAGE: RFC 2822 ফরম্যাট অনুযায়ী MIME বার্তা, যা base64URL হিসেবে এনকোড করা হয়।
সংযুক্তি সহ বার্তা তৈরি করুন
অ্যাটাচমেন্টসহ মেসেজ তৈরি করা অন্য যেকোনো মেসেজ তৈরির মতোই, কিন্তু ফাইলটিকে মাল্টি-পার্ট MIME মেসেজ হিসেবে আপলোড করার প্রক্রিয়াটি প্রোগ্রামিং ভাষার ওপর নির্ভর করে।
নিম্নলিখিত কোড নমুনাগুলি একটি অ্যাটাচমেন্ট সহ একটি বহু-অংশযুক্ত MIME বার্তা তৈরি করার সম্ভাব্য উপায়গুলি দেখায়:
জাভা
নিম্নলিখিত কোড নমুনাটি দেখায় কিভাবে একটি বহু-অংশযুক্ত MIME বার্তা তৈরি করতে হয়। এনকোডিং এবং অ্যাসাইনমেন্ট ধাপগুলো 'create messages'-এর মতোই।
পাইথন
মেসেজ তৈরি করার উদাহরণের মতোই, এই উদাহরণটিও মেসেজটিকে 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: যে অ্যাক্সেস টোকেনটি এপিআই (API)-তে প্রবেশের অনুমতি দেয়। -
MESSAGE: RFC 2822 ফরম্যাটে বিন্যস্ত MIME বার্তা, যা একটি অ্যাটাচমেন্ট ধারণ করে এবং base64URL হিসেবে এনকোড করা থাকে।
বার্তা পাঠান
একবার মেসেজ তৈরি করে নিলে, আপনি messages.send মেথডের রিকোয়েস্ট বডিতে সেটি সরবরাহ করে পাঠাতে পারেন, যেমনটা নিচের উদাহরণগুলোতে দেখানো হয়েছে:
জাভা
পাইথন
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: যে অ্যাক্সেস টোকেনটি এপিআই (API)-তে প্রবেশের অনুমতি দেয়। -
MESSAGE: RFC 2822 ফরম্যাট অনুযায়ী MIME বার্তা, যা base64URL হিসেবে এনকোড করা হয়।
আপনি যদি কোনো উত্তর পাঠাতে চান এবং ইমেলটিকে একটি থ্রেডে অন্তর্ভুক্ত করতে চান, তাহলে নিশ্চিত করুন যে:
-
Subjectশিরোনামগুলো মিলে যায় -
ReferencesএবংIn-Reply-Toহেডারগুলো RFC 2822 স্ট্যান্ডার্ড অনুসরণ করে।