ট্রিগার ইমেল এক্সটেনশন ব্যবহার করে

ট্রিগার ইমেল এক্সটেনশন ( 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.',
  },
})

এছাড়াও আপনি চাইলে এই এক্সটেনশনটিকে হ্যান্ডেলবার্স টেমপ্লেট ব্যবহার করে ইমেল রেন্ডার করার জন্য কনফিগার করতে পারেন।

প্রি-ইনস্টলেশন সেটআপ

এক্সটেনশনটি ইনস্টল করার আগে, এই ধাপগুলো সম্পন্ন করুন:

  1. আপনার বহির্গামী মেইল ​​পরিষেবাটি সেট আপ করুন।

    যখন আপনি ট্রিগার ইমেল এক্সটেনশনটি ইনস্টল করবেন, তখন আপনাকে একটি SMTP সার্ভারের সংযোগ এবং প্রমাণীকরণের বিবরণ নির্দিষ্ট করতে হবে, যা এক্সটেনশনটি ইমেল পাঠানোর জন্য ব্যবহার করে। এটি সাধারণত সেন্ডগ্রিড, মেইলগান বা মেইলচিম্প ট্রানজ্যাকশনাল ইমেলের মতো কোনো ইমেল ডেলিভারি পরিষেবা দ্বারা সরবরাহ করা হয়, তবে এটি আপনার নিজের চালানো কোনো সার্ভারও হতে পারে।

  2. একটি ইমেল ডকুমেন্ট সংগ্রহ তৈরি করুন।

    ট্রিগার ইমেল এক্সটেনশনটি আপনার নির্দিষ্ট করা একটি Cloud Firestore কালেকশনে নতুন ডকুমেন্টের জন্য নজর রাখে। যখন এটি একটি নতুন ডকুমেন্ট খুঁজে পায়, তখন এক্সটেনশনটি ডকুমেন্টটির ফিল্ডগুলোর উপর ভিত্তি করে একটি ইমেল পাঠায়। আপনি এই উদ্দেশ্যে যেকোনো Cloud Firestore কালেকশন ব্যবহার করতে পারেন; এই পৃষ্ঠার উদাহরণগুলোতে email নামের একটি কালেকশন ব্যবহার করা হয়েছে।

  3. আপনার ইমেল ডকুমেন্ট সংগ্রহের জন্য নিরাপত্তা নিয়মাবলী সেট আপ করুন।

    এই এক্সটেনশনটি ক্লায়েন্ট অ্যাপ্লিকেশন থেকে সরাসরি ইমেল ডেলিভারি চালু করতে ব্যবহার করা যেতে পারে। তবে, সম্ভাব্য অপব্যবহার এড়াতে কালেকশনটিতে ক্লায়েন্টের অ্যাক্সেস আপনার সতর্কতার সাথে নিয়ন্ত্রণ করা উচিত (আপনি নিশ্চয়ই চাইবেন না যে ব্যবহারকারীরা আপনার কোম্পানির ঠিকানা থেকে যথেচ্ছভাবে ইমেল পাঠাতে সক্ষম হোক!)।

    নিরাপত্তা বিধি অ্যাপ্লিকেশন ভেদে ভিন্ন হতে পারে, কিন্তু আপনাকে সর্বদা নিশ্চিত করতে হবে যে ইমেলগুলি কেবল উদ্দিষ্ট প্রাপকদের কাছেই পাঠানো হয় এবং অপরিকল্পিত বিষয়বস্তু ন্যূনতম রাখা হয়। এক্ষেত্রে টেমপ্লেট সাহায্য করতে পারে—একজন ব্যবহারকারীকে কী কী সক্রিয় করার অনুমতি দেওয়া উচিত, সে সম্পর্কে আপনার প্রত্যাশার সাথে টেমপ্লেটে পূরণ করা ডেটা মেলে কিনা, তা যাচাই করতে আপনি নিরাপত্তা বিধি ব্যবহার করতে পারেন।

  4. ঐচ্ছিক: একটি ব্যবহারকারী সংগ্রহ তৈরি করুন।

    এই এক্সটেনশনের সাধারণ ব্যবহারে, আপনি মেসেজ ডকুমেন্টের to , cc , এবং bcc ফিল্ডে প্রাপকদের ইমেল অ্যাড্রেস উল্লেখ করে তাদের নির্দিষ্ট করেন। বিকল্প হিসেবে, যদি আপনার Cloud Firestore একটি ইউজার ডেটাবেস থাকে, তবে আপনি ব্যবহারকারীদের UID ব্যবহার করে প্রাপকদের নির্দিষ্ট করতে পারেন। এটি কার্যকর হওয়ার জন্য, আপনার ইউজার কালেকশনকে অবশ্যই এই শর্তগুলো পূরণ করতে হবে:

    • কালেকশনটি অবশ্যই ইউজার আইডির উপর ভিত্তি করে তৈরি হতে হবে। অর্থাৎ, কালেকশনের প্রতিটি ইউজার ডকুমেন্টের ডকুমেন্ট আইডি অবশ্যই ইউজারের Firebase Authentication ইউআইডি (UID) হতে হবে।
    • প্রতিটি ব্যবহারকারী নথিতে ব্যবহারকারীর ইমেল ঠিকানা সম্বলিত একটি email ফিল্ড অবশ্যই থাকতে হবে।
  5. ঐচ্ছিক: একটি টেমপ্লেট সংগ্রহ তৈরি করুন।

    আপনি হ্যান্ডেলবারস টেমপ্লেট ব্যবহার করে ইমেল রেন্ডার করতে পারেন। এর জন্য, আপনার টেমপ্লেটগুলো রাখার জন্য একটি Cloud Firestore কালেকশন প্রয়োজন হবে।

    বিস্তারিত জানতে ট্রিগার ইমেল এক্সটেনশনের সাথে হ্যান্ডেলবার টেমপ্লেটের ব্যবহার দেখুন।

এক্সটেনশনটি ইনস্টল করুন

এক্সটেনশনটি ইনস্টল করতে, 'Install a Firebase Extension ' পেজের ধাপগুলো অনুসরণ করুন। সংক্ষেপে, নিম্নলিখিতগুলির মধ্যে একটি করুন:

এক্সটেনশনটি ইনস্টল করার সময়, আপনাকে আপনার 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.',
}

প্রেরক এবং প্রাপক ক্ষেত্র

ডকুমেন্টের শীর্ষ-স্তরের ফিল্ডগুলো ইমেইল প্রেরক এবং প্রাপকের তথ্য সরবরাহ করে। উপলব্ধ ফিল্ডগুলো হলো:

  • প্রেরক: প্রেরকের ইমেল ঠিকানা। নথিতে এটি নির্দিষ্ট করা না থাকলে, কনফিগার করা "ডিফল্ট প্রেরকের ঠিকানা" প্যারামিটারটি ব্যবহৃত হয়।
  • replyTo: প্রত্যুত্তর পাঠানোর ইমেল ঠিকানা। যদি ডকুমেন্টে এটি নির্দিষ্ট করা না থাকে, তাহলে কনফিগার করা 'Default REPLY-TO address' প্যারামিটারটি ব্যবহৃত হয়।
  • প্রাপক: একজন প্রাপকের ইমেল ঠিকানা অথবা একাধিক প্রাপকের ইমেল ঠিকানা সম্বলিত একটি অ্যারে।
  • toUids: প্রাপকের UID-গুলো ধারণকারী একটি অ্যারে।
  • সিসি: একজন প্রাপকের ইমেল ঠিকানা অথবা একাধিক প্রাপকের ইমেল ঠিকানা সম্বলিত একটি অ্যারে।
  • ccUids: একটি অ্যারে, যেখানে সিসি প্রাপকদের ইউআইডিগুলো থাকে।
  • bcc: একজন প্রাপকের ইমেল ঠিকানা অথবা একাধিক প্রাপকের ইমেল ঠিকানা সম্বলিত একটি অ্যারে।
  • bccUids: একটি অ্যারে, যেখানে বিসিসি প্রাপকদের ইউআইডিগুলো থাকে।
  • হেডারস: অতিরিক্ত হেডার ফিল্ডগুলির একটি অবজেক্ট (উদাহরণস্বরূপ, {"X-Custom-Header": "value", "X-Second-Custom-Header": "value"} )।

দ্রষ্টব্য: toUids , ccUids , এবং bccUids অপশনগুলো একটি ক্লাউড ফায়ারস্টোর ডকুমেন্টের মধ্যে থাকা ইমেল অ্যাড্রেসের সাথে সংযুক্ত ব্যবহারকারীর UID-এর উপর ভিত্তি করে ইমেল পাঠায়। এই প্রাপক অপশনগুলো ব্যবহার করার জন্য, আপনাকে এক্সটেনশনের "Users collection" প্যারামিটারের জন্য একটি ক্লাউড ফায়ারস্টোর কালেকশন নির্দিষ্ট করতে হবে। এরপর এক্সটেনশনটি toUids , ccUids , এবং/অথবা bccUids ফিল্ডে নির্দিষ্ট করা প্রতিটি UID-এর জন্য email ফিল্ডটি পড়তে পারবে।

বার্তা ক্ষেত্র

ডকুমেন্টের message ফিল্ডে ইমেইলের প্রাথমিক ডেলিভারি তথ্য থাকে। এই ফিল্ডটি সাধারণত শুধুমাত্র আপনার নিজের সার্ভার বা ক্লাউড ফাংশনে চলমান বিশ্বস্ত কোড দ্বারা পূরণ করা উচিত (নিচের "নিরাপত্তা নিয়মাবলী এবং ইমেইল পাঠানো" অংশটি দেখুন)।

message ফিল্ডের জন্য উপলব্ধ প্রপার্টিগুলো হলো:

  • messageId: ইমেইলের জন্য একটি মেসেজ আইডি হেডার, যদি থাকে।
  • বিষয়: ইমেইলের বিষয়।
  • text: ইমেইলটির সাধারণ পাঠ্য বিষয়বস্তু।
  • html: ইমেইলের HTML বিষয়বস্তু।
  • amp: ইমেইলের AMP4EMAIL বিষয়বস্তু।
  • সংযুক্তি: সংযুক্তি(গুলি) ধারণকারী একটি অ্যারে; নোডমেইলার সমর্থিত বিকল্পসমূহ : utf-8 স্ট্রিং, কাস্টম কন্টেন্ট টাইপ, URL, এনকোডেড স্ট্রিং, ডেটা URI, এবং পূর্ব-উৎপাদিত MIME নোড (মনে রাখবেন যে আপনার ইমেলের ক্লাউড সার্ভারের ফাইল সিস্টেমে কোনো অ্যাক্সেস নেই)।

উন্নত ব্যবহার

এই এক্সটেনশনটির আরও উন্নত ব্যবহার সম্পর্কে জানুন: