ট্রিগার ইমেল এক্সটেনশন ( firestore-send-email ) আপনাকে Cloud Firestore সংগ্রহের নথির উপর ভিত্তি করে স্বয়ংক্রিয়ভাবে ইমেল পাঠাতে দেয়। সংগ্রহে একটি নথি যোগ করলে এই এক্সটেনশনটি নথির ক্ষেত্রগুলি থেকে তৈরি একটি ইমেল পাঠাতে ট্রিগার করে। নথির শীর্ষ-স্তরের ক্ষেত্রগুলি ইমেল প্রেরক এবং প্রাপকদের নির্দিষ্ট করে, যার মধ্যে রয়েছে to , cc , এবং bcc বিকল্পগুলি (প্রতিটি সমর্থনকারী UID)। নথির message ক্ষেত্রটি অন্যান্য ইমেল উপাদানগুলি নির্দিষ্ট করে, যেমন বিষয় লাইন এবং ইমেল বডি (হয় প্লেইনটেক্সট বা HTML)।
এখানে একটি মৌলিক ডকুমেন্ট লেখার উদাহরণ দেওয়া হল যা এই এক্সটেনশনটিকে ট্রিগার করবে:
admin.firestore().collection('mail').add({
to: 'someone@example.com',
message: {
subject: 'Hello from Firebase!',
html: 'This is an <code>HTML</code> email body.',
},
})
আপনি হ্যান্ডেলবার টেমপ্লেট ব্যবহার করে ইমেল রেন্ডার করার জন্য ঐচ্ছিকভাবে এই এক্সটেনশনটি কনফিগার করতে পারেন।
প্রাক-ইনস্টলেশন সেটআপ
এক্সটেনশনটি ইনস্টল করার আগে, এই পদক্ষেপগুলি সম্পূর্ণ করুন:
আপনার বহির্গামী মেইল পরিষেবা সেট আপ করুন।
যখন আপনি ট্রিগার ইমেল এক্সটেনশনটি ইনস্টল করবেন, তখন আপনাকে একটি SMTP সার্ভারের সংযোগ এবং প্রমাণীকরণের বিবরণ নির্দিষ্ট করতে হবে, যা এক্সটেনশনটি ইমেল পাঠানোর জন্য ব্যবহার করে। এটি সাধারণত Sendgrid, Mailgun, অথবা Mailchimp Transactional Email এর মতো একটি ইমেল ডেলিভারি পরিষেবা দ্বারা সরবরাহ করা হয়, তবে এটি এমন একটি সার্ভারও হতে পারে যা আপনি নিজেই চালান।
একটি ইমেল ডকুমেন্ট সংগ্রহ তৈরি করুন।
ট্রিগার ইমেল এক্সটেনশনটি আপনার নির্দিষ্ট করা Cloud Firestore সংগ্রহে নতুন ডকুমেন্টের জন্য শোনে। যখন এটি একটি নতুন ডকুমেন্ট খুঁজে পায়, তখন এক্সটেনশনটি ডকুমেন্টের ক্ষেত্রগুলির উপর ভিত্তি করে একটি ইমেল পাঠায়। আপনি এই উদ্দেশ্যে যেকোনো Cloud Firestore সংগ্রহ ব্যবহার করতে পারেন; এই পৃষ্ঠার উদাহরণগুলিতে
emailনামক একটি সংগ্রহ ব্যবহার করা হয়েছে।আপনার ইমেল ডকুমেন্ট সংগ্রহের জন্য নিরাপত্তা নিয়ম সেট আপ করুন।
এই এক্সটেনশনটি ক্লায়েন্ট অ্যাপ্লিকেশন থেকে সরাসরি ইমেল ডেলিভারি ট্রিগার করতে ব্যবহার করা যেতে পারে। তবে, সম্ভাব্য অপব্যবহার এড়াতে আপনার সংগ্রহে ক্লায়েন্টের অ্যাক্সেস সাবধানতার সাথে নিয়ন্ত্রণ করা উচিত (আপনি চান না যে ব্যবহারকারীরা আপনার কোম্পানির ঠিকানা থেকে ইচ্ছামত ইমেল পাঠাতে সক্ষম হোক!)।
সুরক্ষা নিয়মগুলি আবেদন ভেদে ভিন্ন হবে, তবে আপনার সর্বদা নিশ্চিত করা উচিত যে ইমেলগুলি কেবল উদ্দেশ্যপ্রাপ্ত প্রাপকদের কাছেই পাঠানো হয় এবং মুক্ত-ফর্ম সামগ্রী সর্বনিম্ন রাখা হয়। টেমপ্লেটগুলি এখানে সাহায্য করতে পারে - আপনি সুরক্ষা নিয়মগুলি ব্যবহার করে যাচাই করতে পারেন যে টেমপ্লেটে পূরণ করা ডেটা আপনার প্রত্যাশার সাথে মেলে যা একজন ব্যবহারকারীকে ট্রিগার করার অনুমতি দেওয়া উচিত।
ঐচ্ছিক: একটি ব্যবহারকারী সংগ্রহ সেট আপ করুন।
এই এক্সটেনশনের মৌলিক ব্যবহারের অধীনে, আপনি বার্তা নথির
to,cc, এবংbccক্ষেত্রে তাদের ইমেল ঠিকানা উল্লেখ করে একটি ইমেলের প্রাপকদের নির্দিষ্ট করতে পারেন। বিকল্প হিসাবে, যদি আপনার Cloud Firestore একটি ব্যবহারকারী ডাটাবেস থাকে, তাহলে আপনি ব্যবহারকারীদের UID ব্যবহার করে প্রাপকদের নির্দিষ্ট করতে পারেন। এটি কাজ করার জন্য, আপনার ব্যবহারকারী সংগ্রহকে এই মানদণ্ডগুলি পূরণ করতে হবে:- সংগ্রহটি ব্যবহারকারীর আইডিতে কী করা উচিত। অর্থাৎ, সংগ্রহের প্রতিটি ব্যবহারকারীর নথির ডকুমেন্ট আইডি ব্যবহারকারীর Firebase Authentication ইউআইডি হতে হবে।
- প্রতিটি ব্যবহারকারীর নথিতে ব্যবহারকারীর ইমেল ঠিকানা সম্বলিত একটি
emailক্ষেত্র থাকতে হবে।
ঐচ্ছিক: একটি টেমপ্লেট সংগ্রহ সেট আপ করুন।
আপনি হ্যান্ডেলবার টেমপ্লেট ব্যবহার করে ইমেল রেন্ডার করতে পারেন। এটি করার জন্য, আপনার টেমপ্লেটগুলি ধারণ করার জন্য একটি Cloud Firestore সংগ্রহের প্রয়োজন হবে।
বিস্তারিত জানার জন্য ট্রিগার ইমেল এক্সটেনশন সহ হ্যান্ডেলবার টেমপ্লেট ব্যবহার করুন দেখুন।
এক্সটেনশনটি ইনস্টল করুন
এক্সটেনশনটি ইনস্টল করতে, Firebase Extension ইনস্টল করুন" পৃষ্ঠার ধাপগুলি অনুসরণ করুন। সংক্ষেপে, নিম্নলিখিতগুলির মধ্যে একটি করুন:
Firebase কনসোল: নিম্নলিখিত বোতামটি ক্লিক করুন:
CLI: নিম্নলিখিত কমান্ডটি চালান:
firebase ext:install firebase/firestore-send-email --project=projectId-or-alias
যখন আপনি এক্সটেনশনটি ইনস্টল করবেন, তখন আপনাকে আপনার SMTP সংযোগের তথ্য এবং আপনার আগে সেট আপ করা Cloud Firestore সংগ্রহগুলি নির্দিষ্ট করতে বলা হবে।
এক্সটেনশনটি ব্যবহার করুন
ইনস্টলেশনের পরে, এই এক্সটেনশনটি আপনার কনফিগার করা সংগ্রহে সমস্ত ডকুমেন্ট লেখার উপর নজর রাখে। ডকুমেন্টের ক্ষেত্রের বিষয়বস্তুর উপর ভিত্তি করে ইমেল বিতরণ করা হয়। শীর্ষ-স্তরের ক্ষেত্রগুলি ইমেলের প্রেরক এবং প্রাপকদের নির্দিষ্ট করে। message ক্ষেত্রে ইমেলের মূল অংশ সহ, সরবরাহ করার জন্য ইমেলের বিশদ থাকে।
উদাহরণ: একটি ইমেল পাঠান
একটি সহজ বার্তা পাঠাতে, আপনার বার্তা সংগ্রহে একটি ডকুমেন্ট যোগ করুন যার মধ্যে একটি to ফিল্ড এবং নিম্নলিখিত বিষয়বস্তু সহ একটি message ফিল্ড থাকবে:
to: ['someone@example.com'],
message: {
subject: 'Hello from Firebase!',
text: 'This is the plaintext section of the email body.',
html: 'This is the <code>HTML</code> section of the email body.',
}
প্রেরক এবং প্রাপক ক্ষেত্র
ডকুমেন্টের শীর্ষ-স্তরের ক্ষেত্রগুলি ইমেল প্রেরক এবং প্রাপকের তথ্য সরবরাহ করে। উপলব্ধ ক্ষেত্রগুলি হল:
- থেকে: প্রেরকের ইমেল ঠিকানা। যদি নথিতে উল্লেখ না করা থাকে, তাহলে কনফিগার করা "ডিফল্ট FROM ঠিকানা" প্যারামিটার ব্যবহার করে।
- replyTo: উত্তর-প্রত্যয়িত ইমেল ঠিকানা। যদি ডকুমেন্টে নির্দিষ্ট না করা থাকে, তাহলে কনফিগার করা "ডিফল্ট উত্তর-প্রত্যয়িত ঠিকানা" প্যারামিটার ব্যবহার করে।
- প্রতি: একটি একক প্রাপকের ইমেল ঠিকানা অথবা একাধিক প্রাপকের ইমেল ঠিকানা সম্বলিত একটি অ্যারে।
- toUids: প্রাপকের UID ধারণকারী একটি অ্যারে।
- cc: একটি একক প্রাপক ইমেল ঠিকানা অথবা একাধিক প্রাপক ইমেল ঠিকানা সম্বলিত একটি অ্যারে।
- ccUids: CC প্রাপক UID ধারণকারী একটি অ্যারে।
- bcc: একটি একক প্রাপক ইমেল ঠিকানা অথবা একাধিক প্রাপক ইমেল ঠিকানা সম্বলিত একটি অ্যারে।
- bccUids: BCC প্রাপক UID ধারণকারী একটি অ্যারে।
- হেডার: অতিরিক্ত হেডার ফিল্ডের একটি অবজেক্ট (উদাহরণস্বরূপ,
{"X-Custom-Header": "value", "X-Second-Custom-Header": "value"})।
দ্রষ্টব্য: toUids , ccUids , এবং bccUids বিকল্পগুলি ক্লাউড ফায়ারস্টোর ডকুমেন্টের মধ্যে ইমেল ঠিকানাগুলিতে কী করা ব্যবহারকারীর UID-এর উপর ভিত্তি করে ইমেল সরবরাহ করে। এই প্রাপক বিকল্পগুলি ব্যবহার করার জন্য, আপনাকে এক্সটেনশনের "ব্যবহারকারীদের সংগ্রহ" প্যারামিটারের জন্য একটি ক্লাউড ফায়ারস্টোর সংগ্রহ নির্দিষ্ট করতে হবে। এক্সটেনশনটি তখন toUids , ccUids , এবং/অথবা bccUids ক্ষেত্রে নির্দিষ্ট প্রতিটি UID-এর জন্য email ক্ষেত্রটি পড়তে পারে।
বার্তা ক্ষেত্র
ডকুমেন্টের message ফিল্ডে ইমেলের জন্য কাঁচা ডেলিভারি তথ্য থাকে। এই ফিল্ডটি সাধারণত শুধুমাত্র আপনার নিজস্ব সার্ভার বা ক্লাউড ফাংশনে চলমান বিশ্বস্ত কোড দ্বারা পূর্ণ করা উচিত (নীচে "নিরাপত্তা নিয়ম এবং ইমেল পাঠানো" বিভাগটি দেখুন)।
message ক্ষেত্রের জন্য উপলব্ধ বৈশিষ্ট্যগুলি হল:
- messageId: ইমেলের জন্য একটি message ID হেডার, যদি থাকে।
- বিষয়: ইমেলের বিষয়।
- টেক্সট: ইমেলের প্লেইনটেক্সট কন্টেন্ট।
- html: ইমেলের HTML কন্টেন্ট।
- amp: ইমেলের AMP4EMAIL বিষয়বস্তু।
- সংযুক্তি: সংযুক্তি(গুলি) ধারণকারী একটি অ্যারে; নোডিমেইলার বিকল্পগুলি সমর্থিত: utf-8 স্ট্রিং, কাস্টম সামগ্রীর ধরণ, URL, এনকোডেড স্ট্রিং, ডেটা URI, এবং প্রিজেনারেটেড MIME নোড (সচেতন থাকুন যে আপনার ইমেলের ক্লাউড সার্ভারের ফাইল সিস্টেমে কোনও অ্যাক্সেস নেই)।
উন্নত ব্যবহার
এই এক্সটেনশনের আরও উন্নত ব্যবহার সম্পর্কে জানুন:
- ট্রিগার ইমেল এক্সটেনশনের সাহায্যে হ্যান্ডেলবার টেমপ্লেট ব্যবহার করুন
- ট্রিগার ইমেল এক্সটেনশনের সাহায্যে ডেলিভারি স্ট্যাটাস পরিচালনা করুন