Trigger Email एक्सटेंशन (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.',
},
})
इस एक्सटेंशन को Handlebars टेंप्लेट का इस्तेमाल करके ईमेल रेंडर करने के लिए भी कॉन्फ़िगर किया जा सकता है.
इंस्टॉल करने से पहले का सेटअप
एक्सटेंशन इंस्टॉल करने से पहले, यह तरीका अपनाएं:
ईमेल भेजने की सेवा सेट अप करें.
Trigger Email एक्सटेंशन इंस्टॉल करते समय, आपको एसएमटीपी सर्वर के कनेक्शन और पुष्टि करने की जानकारी देनी होगी. इस जानकारी का इस्तेमाल करके, एक्सटेंशन ईमेल भेजता है. आम तौर पर, यह सुविधा ईमेल डिलीवर करने वाली सेवा देती है. जैसे, Sendgrid, Mailgun या Mailchimp Transactional Email. हालांकि, यह सुविधा आपके खुद के सर्वर से भी मिल सकती है.
ईमेल दस्तावेज़ों का कलेक्शन बनाएं.
ट्रिगर ईमेल एक्सटेंशन, Cloud Firestore आपके तय किए गए कलेक्शन में मौजूद नए दस्तावेज़ों के बारे में सुनता है. जब एक्सटेंशन को कोई नया दस्तावेज़ मिलता है, तो वह दस्तावेज़ के फ़ील्ड के आधार पर एक ईमेल भेजता है. इसके लिए, किसी भी Cloud Firestore कलेक्शन का इस्तेमाल किया जा सकता है. इस पेज पर दिए गए उदाहरणों में,
email
नाम के कलेक्शन का इस्तेमाल किया गया है.ईमेल दस्तावेज़ों के कलेक्शन के लिए सुरक्षा नियम सेट अप करें.
इस एक्सटेंशन का इस्तेमाल सीधे क्लाइंट ऐप्लिकेशन से ईमेल भेजने के लिए किया जा सकता है. हालांकि, आपको कलेक्शन के लिए क्लाइंट के ऐक्सेस को सावधानी से कंट्रोल करना चाहिए, ताकि इसका गलत इस्तेमाल न हो. ऐसा इसलिए, क्योंकि आपको यह नहीं चाहिए कि उपयोगकर्ता आपकी कंपनी के पते से कोई भी ईमेल भेज सकें!
सुरक्षा से जुड़े नियम, ऐप्लिकेशन के हिसाब से अलग-अलग होंगे. हालांकि, आपको हमेशा यह पक्का करना चाहिए कि ईमेल सिर्फ़ उन लोगों को भेजे जाएं जिनके लिए वे बने हैं. साथ ही, फ़्री-फ़ॉर्म कॉन्टेंट को कम से कम रखा जाए. यहां टेंप्लेट आपकी मदद कर सकते हैं. सुरक्षा के नियमों का इस्तेमाल करके, यह पुष्टि की जा सकती है कि टेंप्लेट में भरा जा रहा डेटा, आपकी उम्मीदों के मुताबिक है. इससे यह भी पता चलता है कि किसी उपयोगकर्ता को कौनसी कार्रवाई ट्रिगर करने की अनुमति दी जानी चाहिए.
ज़रूरी नहीं: उपयोगकर्ताओं का कलेक्शन सेट अप करें.
इस एक्सटेंशन का बुनियादी इस्तेमाल करने के लिए, आपको ईमेल पाने वालों के ईमेल पते तय करने होते हैं. इसके लिए, मैसेज दस्तावेज़ के
to
,cc
, औरbcc
फ़ील्ड में उनके ईमेल पते डालें. इसके अलावा, अगर आपके पास Cloud Firestore में उपयोगकर्ता डेटाबेस है, तो उपयोगकर्ताओं के यूआईडी का इस्तेमाल करके, ईमेल पाने वालों को चुना जा सकता है. इसके लिए, आपके उपयोगकर्ताओं के कलेक्शन को इन शर्तों को पूरा करना होगा:- डेटा कलेक्शन को यूज़र आईडी के हिसाब से व्यवस्थित किया जाना चाहिए. इसका मतलब है कि कलेक्शन में मौजूद हर उपयोगकर्ता दस्तावेज़ का दस्तावेज़ आईडी, उपयोगकर्ता का Firebase Authentication यूआईडी होना चाहिए.
- हर उपयोगकर्ता के दस्तावेज़ में,
email
फ़ील्ड होना चाहिए. इसमें उपयोगकर्ता का ईमेल पता शामिल होता है.
ज़रूरी नहीं: टेंप्लेट का कलेक्शन सेट अप करें.
हैंडलबार टेंप्लेट का इस्तेमाल करके ईमेल रेंडर किए जा सकते हैं. इसके लिए, आपको Cloud Firestore कलेक्शन की ज़रूरत होगी, ताकि उसमें अपने टेंप्लेट सेव किए जा सकें.
ज़्यादा जानकारी के लिए, ट्रिगर ईमेल एक्सटेंशन के साथ Handlebars टेंप्लेट का इस्तेमाल करना लेख पढ़ें.
एक्सटेंशन इंस्टॉल करना
एक्सटेंशन इंस्टॉल करने के लिए, Firebase Extension इंस्टॉल करें पेज पर दिया गया तरीका अपनाएं. संक्षेप में, इनमें से कोई एक काम करें:
Firebase कंसोल: इस बटन पर क्लिक करें:
सीएलआई: यह कमांड चलाएं:
firebase ext:install firebase/firestore-send-email --project=projectId-or-alias
एक्सटेंशन इंस्टॉल करने पर, आपको अपने एसएमटीपी कनेक्शन की जानकारी और पहले से सेट अप किए गए 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: जवाब देने का ईमेल पता. अगर दस्तावेज़ में नहीं बताया गया है, तो कॉन्फ़िगर किए गए "जवाब देने वाले का डिफ़ॉल्ट पता" पैरामीटर का इस्तेमाल करता है.
- 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
, और/or bccUids
फ़ील्ड में तय किए गए हर यूआईडी के लिए email
फ़ील्ड को पढ़ सकता है.
मैसेज फ़ील्ड
दस्तावेज़ के message
फ़ील्ड में, ईमेल की डिलीवरी की रॉ जानकारी होती है. आम तौर पर, इस फ़ील्ड में सिर्फ़ भरोसेमंद कोड से जानकारी भरी जानी चाहिए. यह कोड आपके सर्वर या Cloud Functions में चलता है. इसके बारे में ज़्यादा जानने के लिए, नीचे दिया गया "सुरक्षा के नियम और ईमेल भेजना" सेक्शन पढ़ें.
message
फ़ील्ड के लिए ये प्रॉपर्टी उपलब्ध हैं:
- messageId: ईमेल के लिए मैसेज आईडी हेडर. अगर कोई है, तो.
- विषय: ईमेल का विषय.
- text: ईमेल का सामान्य टेक्स्ट वाला कॉन्टेंट.
- html: ईमेल का एचटीएमएल कॉन्टेंट.
- amp: ईमेल का AMP4EMAIL कॉन्टेंट.
- attachments: यह एक ऐसा कलेक्शन होता है जिसमें अटैचमेंट होते हैं. Nodemailer के इन विकल्पों का इस्तेमाल किया जा सकता है: utf-8 स्ट्रिंग, कस्टम कॉन्टेंट टाइप, यूआरएल, एन्कोड की गई स्ट्रिंग, डेटा यूआरआई, और पहले से जनरेट किया गया MIME नोड. ध्यान रखें कि आपके ईमेल के पास क्लाउड सर्वर के फ़ाइल सिस्टम का ऐक्सेस नहीं होता.
बेहतर इस्तेमाल के लिए
इस एक्सटेंशन का ज़्यादा बेहतर तरीके से इस्तेमाल करने के बारे में जानें:
- Trigger Email एक्सटेंशन के साथ Handlebars टेंप्लेट का इस्तेमाल करना
- Trigger Email एक्सटेंशन की मदद से, डिलीवरी का स्टेटस मैनेज करना