ट्रिगर ईमेल एक्सटेंशन का इस्तेमाल करना

ईमेल ट्रिगर करने वाले एक्सटेंशन (firestore-send-email) की मदद से, Cloud Firestore कलेक्शन में मौजूद दस्तावेज़ों के आधार पर, अपने-आप ईमेल भेजे जा सकते हैं. कलेक्शन में कोई दस्तावेज़ जोड़ने पर, यह एक्सटेंशन दस्तावेज़ के फ़ील्ड से बना ईमेल भेजने के लिए ट्रिगर होता है. दस्तावेज़ के सबसे ऊपर के फ़ील्ड, ईमेल भेजने वाले और पाने वालों की जानकारी देते हैं. इनमें to, cc, और bcc विकल्प (काम करने वाले हर यूआईडी) शामिल हैं. दस्तावेज़ का 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. ईमेल भेजने की सेवा सेट अप करें.

    ट्रिगर ईमेल एक्सटेंशन इंस्टॉल करते समय, आपको उस एसएमटीपी सर्वर के कनेक्शन और पुष्टि की जानकारी देनी होगी जिसका इस्तेमाल एक्सटेंशन ईमेल भेजने के लिए करता है. आम तौर पर, यह ईमेल डिलीवरी सेवा से मिलता है. जैसे, Sendgrid, Mailgun या Mailchimp Transactional Email. हालांकि, यह ऐसा सर्वर भी हो सकता है जिसे आपने खुद मैनेज किया हो.

  2. ईमेल दस्तावेज़ों का कलेक्शन बनाएं.

    ट्रिगर ईमेल एक्सटेंशन, आपके तय किए गए Cloud Firestore कलेक्शन में मौजूद नए दस्तावेज़ों को सुनता है. जब उसे कोई नया दस्तावेज़ मिलता है, तो एक्सटेंशन उस दस्तावेज़ के फ़ील्ड के आधार पर ईमेल भेजता है. इस काम के लिए, किसी भी Cloud Firestore कलेक्शन का इस्तेमाल किया जा सकता है. इस पेज पर दिए गए उदाहरणों में, email नाम के कलेक्शन का इस्तेमाल किया गया है.

  3. अपने ईमेल दस्तावेज़ों के कलेक्शन के लिए, सुरक्षा से जुड़े नियम सेट अप करें.

    इस एक्सटेंशन का इस्तेमाल, सीधे क्लाइंट ऐप्लिकेशन से ईमेल डिलीवरी को ट्रिगर करने के लिए किया जा सकता है. हालांकि, आपको क्लाइंट के पास कलेक्शन का ऐक्सेस देने के लिए सावधानी बरतनी चाहिए, ताकि इसका गलत इस्तेमाल न किया जा सके. आपको नहीं चाहिए कि उपयोगकर्ता आपकी कंपनी के पते से मनमुताबिक ईमेल भेज सकें!

    सुरक्षा के नियम अलग-अलग ऐप्लिकेशन के लिए अलग-अलग होते हैं, लेकिन आपको हमेशा यह पक्का करना चाहिए कि ईमेल सिर्फ़ तय किए गए लोगों को भेजे जाएं और उनके फ़्री फ़ॉर्म वाला कॉन्टेंट कम से कम रखा जाए. टेंप्लेट से आपको इस काम में मदद मिल सकती है. सुरक्षा से जुड़े नियमों का इस्तेमाल करके, यह पुष्टि की जा सकती है कि टेंप्लेट में जो डेटा डाला जा रहा है वह आपकी उम्मीदों के मुताबिक है. इससे यह तय किया जा सकता है कि उपयोगकर्ता को किस तरह के ट्रिगर करने की अनुमति दी जानी चाहिए.

  4. ज़रूरी नहीं: उपयोगकर्ताओं का कलेक्शन सेट अप करें.

    इस एक्सटेंशन के बुनियादी इस्तेमाल में, ईमेल पाने वालों के ईमेल पते डालकर, ईमेल पाने वालों की जानकारी दी जाती है. इसके लिए, मैसेज दस्तावेज़ के to, cc, और bcc फ़ील्ड में ईमेल पते डाले जाते हैं. इसके अलावा, अगर आपके पास Cloud Firestore में उपयोगकर्ताओं का डेटाबेस है, तो उपयोगकर्ताओं के यूआईडी का इस्तेमाल करके, ईमेल पाने वालों की जानकारी दी जा सकती है. इसके काम करने के लिए, आपके उपयोगकर्ता संग्रह को इन शर्तों को पूरा करना होगा:

    • कलेक्शन को यूज़र आईडी के हिसाब से व्यवस्थित किया जाना चाहिए. इसका मतलब है कि कलेक्शन में मौजूद हर उपयोगकर्ता के दस्तावेज़ का दस्तावेज़ आईडी, उपयोगकर्ता का Firebase Authentication यूआईडी होना चाहिए.
    • हर उपयोगकर्ता के दस्तावेज़ में email फ़ील्ड होना चाहिए, जिसमें उपयोगकर्ता का ईमेल पता हो.
  5. ज़रूरी नहीं: टेंप्लेट का कलेक्शन सेट अप करें.

    हैंडलबार टेंप्लेट का इस्तेमाल करके, ईमेल रेंडर किए जा सकते हैं. ऐसा करने के लिए, आपके पास अपने टेंप्लेट को सेव करने के लिए Cloud Firestore कलेक्शन होना चाहिए.

    ज़्यादा जानकारी के लिए, ट्रिगर ईमेल एक्सटेंशन के साथ हैंडलबार टेंप्लेट का इस्तेमाल करना देखें.

एक्सटेंशन इंस्टॉल करें

एक्सटेंशन इंस्टॉल करने के लिए, Firebase Extension इंस्टॉल करें पेज पर दिया गया तरीका अपनाएं. खास जानकारी के लिए, इनमें से कोई एक काम करें:

एक्सटेंशन इंस्टॉल करने पर, आपसे अपने एसएमटीपी कनेक्शन की जानकारी और पहले से सेट अप किए गए 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: जवाब देने का ईमेल पता. अगर दस्तावेज़ में नहीं बताया गया है, तो कॉन्फ़िगर किए गए "डिफ़ॉल्ट REPLY-TO पता" पैरामीटर का इस्तेमाल करता है.
  • to: ईमेल पाने वाले व्यक्ति का एक ईमेल पता या एक से ज़्यादा ईमेल पते वाला कलेक्शन.
  • toUids: यह एक कलेक्शन है, जिसमें ईमेल पाने वाले लोगों के यूआईडी शामिल होते हैं.
  • cc: ईमेल पाने वाले व्यक्ति का एक ईमेल पता या ईमेल पाने वाले कई लोगों के ईमेल पते का कलेक्शन.
  • ccUids: यह एक कलेक्शन है, जिसमें ईमेल पाने वाले उन लोगों के यूआईडी शामिल होते हैं जिन्हें ईमेल की कॉपी भेजी जानी है.
  • bcc: ईमेल पाने वाले व्यक्ति का एक ईमेल पता या एक से ज़्यादा ईमेल पते वाला कलेक्शन.
  • bccUids: ऐसा कलेक्शन जिसमें गुप्त कॉपी पाने वाले लोगों के यूआईडी शामिल होते हैं.
  • headers: अतिरिक्त हेडर फ़ील्ड का ऑब्जेक्ट (उदाहरण के लिए, {"X-Custom-Header": "value", "X-Second-Custom-Header": "value"}).

ध्यान दें: toUids, ccUids, और bccUids विकल्प, Cloud Firestore दस्तावेज़ में ईमेल पतों से जुड़े उपयोगकर्ता यूआईडी के आधार पर ईमेल भेजते हैं. ईमेल पाने वाले के इन विकल्पों का इस्तेमाल करने के लिए, आपको एक्सटेंशन के "उपयोगकर्ता संग्रह" पैरामीटर के लिए Cloud Firestore कलेक्शन तय करना होगा. इसके बाद, एक्सटेंशन toUids, ccUids, और/या bccUids फ़ील्ड में बताए गए हर यूआईडी के लिए, email फ़ील्ड को पढ़ सकता है.

मैसेज फ़ील्ड

दस्तावेज़ के message फ़ील्ड में, ईमेल की डिलीवरी की रॉ जानकारी होती है. आम तौर पर, इस फ़ील्ड में सिर्फ़ अपने सर्वर या Cloud Functions में चल रहे भरोसेमंद कोड की जानकारी भरी जानी चाहिए. ज़्यादा जानकारी के लिए, नीचे "सुरक्षा नियम और ईमेल भेजना" सेक्शन देखें.

message फ़ील्ड के लिए ये प्रॉपर्टी उपलब्ध हैं:

  • messageId: अगर ईमेल में मैसेज आईडी हेडर है, तो उसका नाम.
  • subject: ईमेल का विषय.
  • टेक्स्ट: ईमेल का सादा टेक्स्ट.
  • html: ईमेल का एचटीएमएल कॉन्टेंट.
  • amp: ईमेल का AMP4EMAIL कॉन्टेंट.
  • अटैचमेंट: अटैचमेंट वाला कलेक्शन; Nodemailer के विकल्प: utf-8 स्ट्रिंग, कस्टम कॉन्टेंट टाइप, यूआरएल, एन्कोड की गई स्ट्रिंग, डेटा यूआरआई, और पहले से जनरेट किया गया एमआईएमई नोड (ध्यान रखें कि आपके ईमेल के पास क्लाउड सर्वर के फ़ाइल सिस्टम का ऐक्सेस नहीं है).

बेहतर इस्तेमाल के लिए

इस एक्सटेंशन के बेहतर इस्तेमाल के बारे में जानें: