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

ট্রিগার ইমেল এক্সটেনশন ( firestore-send-email ) আপনাকে Cloud Firestore সংগ্রহের নথির উপর ভিত্তি করে স্বয়ংক্রিয়ভাবে ইমেল পাঠাতে দেয়। সংগ্রহে একটি নথি যোগ করা এই এক্সটেনশনটিকে নথির ক্ষেত্রগুলি থেকে তৈরি একটি ইমেল পাঠাতে ট্রিগার করে৷ নথির শীর্ষ-স্তরের ক্ষেত্রগুলি ইমেল প্রেরক এবং প্রাপকদের নির্দিষ্ট করে, to মধ্যে রয়েছে , cc এবং bcc বিকল্পগুলি (প্রতিটি সমর্থনকারী UIDs)। নথির message ক্ষেত্রটি অন্যান্য ইমেল উপাদানগুলি নির্দিষ্ট করে, যেমন বিষয় লাইন এবং ইমেল বডি (হয় প্লেইনটেক্সট বা এইচটিএমএল)।

এখানে একটি মৌলিক উদাহরণ নথি লিখুন যা এই এক্সটেনশনটি ট্রিগার করবে:

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 সার্ভারের সংযোগ এবং প্রমাণীকরণের বিশদ উল্লেখ করতে হবে, যা এক্সটেনশনটি ইমেল পাঠাতে ব্যবহার করে। এটি সাধারণত Sendgrid, Mailgun, বা Mailchimp লেনদেনমূলক ইমেলের মতো একটি ইমেল বিতরণ পরিষেবা দ্বারা সরবরাহ করা হয়, তবে এটি এমন একটি সার্ভারও হতে পারে যা আপনি নিজেই চালান৷

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

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

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

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

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

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

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

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

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

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

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

এক্সটেনশনটি ইনস্টল করতে, একটি Firebase Extension ইনস্টল করুন পৃষ্ঠায় পদক্ষেপগুলি অনুসরণ করুন৷ সংক্ষেপে, নিম্নলিখিতগুলির মধ্যে একটি করুন:

আপনি যখন এক্সটেনশনটি ইনস্টল করবেন, তখন আপনাকে আপনার SMTP সংযোগের তথ্য এবং আপনার আগে সেট আপ করা Cloud Firestore সংগ্রহগুলি উল্লেখ করতে বলা হবে৷

এক্সটেনশন ব্যবহার করুন

ইনস্টলেশনের পরে, এই এক্সটেনশনটি আপনার কনফিগার করা সংগ্রহে সমস্ত নথির লেখা নিরীক্ষণ করে। নথির ক্ষেত্রগুলির বিষয়বস্তুর উপর ভিত্তি করে ইমেল বিতরণ করা হয়। শীর্ষ-স্তরের ক্ষেত্রগুলি ইমেলের প্রেরক এবং প্রাপকদের নির্দিষ্ট করে। message ফিল্ডে ইমেলের বডি সহ ইমেলের বিশদ বিবরণ থাকে।

উদাহরণ: একটি ইমেল পাঠান

একটি সাধারণ বার্তা পাঠাতে, আপনার বার্তা সংগ্রহে একটি দস্তাবেজ যোগ করুন a 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: রিপ্লাই-টু ইমেল ঠিকানা। নথিতে নির্দিষ্ট না থাকলে, কনফিগার করা "ডিফল্ট রিপ্লাই-টু ঠিকানা" প্যারামিটার ব্যবহার করে।
  • থেকে: একটি একক প্রাপকের ইমেল ঠিকানা বা একাধিক প্রাপকের ইমেল ঠিকানা ধারণকারী একটি অ্যারে।
  • 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: ইমেলের জন্য একটি বার্তা আইডি শিরোনাম, যদি থাকে।
  • বিষয়: ইমেলের বিষয়।
  • পাঠ্য: ইমেলের প্লেইনটেক্সট বিষয়বস্তু।
  • html: ইমেলের HTML বিষয়বস্তু।
  • amp: ইমেলের AMP4EMAIL সামগ্রী।
  • সংযুক্তি: সংযুক্তি(গুলি) ধারণকারী একটি অ্যারে; নোডমেলার বিকল্পগুলি সমর্থিত: utf-8 স্ট্রিং, কাস্টম সামগ্রীর ধরন, URL, এনকোড করা স্ট্রিং, ডেটা URI, এবং প্রি-জেনারেটেড MIME নোড (সচেতন থাকুন যে আপনার ইমেলের ক্লাউড সার্ভারের ফাইল সিস্টেমে কোনও অ্যাক্সেস নেই)।

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

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