ट्रिगर ईमेल एक्सटेंशन (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 टेंप्लेट का इस्तेमाल करके ईमेल को रेंडर करने के लिए, वैकल्पिक तौर पर इस एक्सटेंशन को कॉन्फ़िगर भी किया जा सकता है.
इंस्टॉल करने से पहले का सेटअप
एक्सटेंशन इंस्टॉल करने से पहले, यह तरीका अपनाएं:
आउटगोइंग मेल की सेवा सेट अप करें.
ट्रिगर ईमेल एक्सटेंशन इंस्टॉल करते समय, आपको एसएमटीपी सर्वर के कनेक्शन और पुष्टि करने की जानकारी देनी होगी. इस जानकारी का इस्तेमाल करके, एक्सटेंशन ईमेल भेजता है. आम तौर पर, यह जानकारी Sendgrid, Mailgun या Mailchimp Transactional Email जैसी ईमेल डिलीवरी सेवा देती है. हालांकि, यह जानकारी आपके खुद के सर्वर से भी मिल सकती है.
ईमेल दस्तावेज़ों का कलेक्शन बनाएं.
ट्रिगर ईमेल एक्सटेंशन, आपके तय किए गए Cloud Firestore कलेक्शन में मौजूद नए दस्तावेज़ों को सुनता है. जब इसे कोई नया दस्तावेज़ मिलता है, तो यह एक्सटेंशन दस्तावेज़ के फ़ील्ड के आधार पर एक ईमेल भेजता है. इसके लिए, किसी भी Cloud Firestore कलेक्शन का इस्तेमाल किया जा सकता है. इस पेज पर दिए गए उदाहरणों में, कलेक्शन नाम के
emailका इस्तेमाल किया गया है.ईमेल दस्तावेज़ों के कलेक्शन के लिए सुरक्षा के नियम सेट अप करें.
इस एक्सटेंशन का इस्तेमाल, क्लाइंट ऐप्लिकेशन से सीधे ईमेल डिलीवरी को ट्रिगर करने के लिए किया जा सकता है. हालांकि, ईमेल के गलत इस्तेमाल से बचने के लिए, आपको कलेक्शन पर क्लाइंट के ऐक्सेस को सावधानी से कंट्रोल करना चाहिए. अगर आप नहीं चाहते कि उपयोगकर्ता आपकी कंपनी के पते से मनमाने ईमेल भेज सकें!
अलग-अलग ऐप्लिकेशन के लिए सुरक्षा नियम अलग-अलग होंगे, लेकिन आपको हमेशा यह पक्का करना चाहिए कि ईमेल सिर्फ़ उन ही लोगों को भेजे जाते हों जो उन्हें पाना चाहते हैं. साथ ही, यह भी पक्का करना चाहिए कि ईमेल में फ़्री-फ़ॉर्म कॉन्टेंट को कम से कम रखा जाए. टेंप्लेट यहां मददगार हो सकते हैं. सुरक्षा नियमों का इस्तेमाल करके, यह पक्का किया जा सकता है कि टेंप्लेट पर डाला जा रहा डेटा आपकी उम्मीदों से मेल खाता हो. इसके लिए, उपयोगकर्ता को ट्रिगर करने की अनुमति दी जानी चाहिए.
ज़रूरी नहीं: उपयोगकर्ताओं का कलेक्शन सेट अप करें.
इस एक्सटेंशन के सामान्य इस्तेमाल के तहत, मैसेज वाले दस्तावेज़ के
to,cc, औरbccफ़ील्ड में ईमेल पते डालकर, ईमेल पाने वाले लोगों की जानकारी दी जाती है. इसके अलावा, अगर आपके पास Cloud Firestore में उपयोगकर्ता डेटाबेस है, तो उपयोगकर्ताओं के यूआईडी का इस्तेमाल करके, ईमेल पाने वाले लोगों की जानकारी दी जा सकती है. इसके लिए, उपयोगकर्ताओं के कलेक्शन को ये शर्तें पूरी करनी होंगी:- कलेक्शन को यूज़र आईडी के हिसाब से की किया जाना चाहिए. इसका मतलब है कि कलेक्शन में मौजूद हर उपयोगकर्ता के दस्तावेज़ का दस्तावेज़ आईडी, उपयोगकर्ता का Firebase Authentication यूआईडी होना चाहिए.
- हर उपयोगकर्ता के दस्तावेज़ में,
emailफ़ील्ड होना चाहिए. इसमें उपयोगकर्ता का ईमेल पता होना चाहिए.
ज़रूरी नहीं: टेंप्लेट का कलेक्शन सेट अप करें.
Handlebars टेंप्लेट का इस्तेमाल करके, ईमेल रेंडर किए जा सकते हैं. इसके लिए, आपको अपने टेंप्लेट सेव करने के लिए 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: इस ईमेल पते पर जवाब दें. अगर दस्तावेज़ में नहीं बताया गया है, तो कॉन्फ़िगर किए गए "पते पर डिफ़ॉल्ट तौर पर जवाब दें" पौरामीटर का इस्तेमाल करता है.
- पाने वाला: ईमेल पाने वाले एक व्यक्ति का ईमेल पता या एक श्रेणी जिसमें ईमेल पाने वाले कई लोगों के ईमेल पते होते हैं.
- toUids: एक श्रेणी जिसमें ईमेल पाने वाले व्यक्ति के यूआईडी होते हैं.
- कॉपी: ईमेल पाने वाले एक व्यक्ति का ईमेल पता या एक श्रेणी जिसमें ईमेल पाने वाले कई लोगों के ईमेल पते होते हैं.
- ccUids: एक श्रेणी जिसमें कॉपी में रखे गए व्यक्ति के यूआईडी होते हैं.
- गुप्त कॉपी: ईमेल पाने वाले एक व्यक्ति का ईमेल पता या एक श्रेणी जिसमें ईमेल पाने वाले कई लोगों के ईमेल पते होते हैं.
- bccUids: एक श्रेणी जिसमें गुप्त कॉपी में रखे गए व्यक्ति के यूआईडी होते हैं.
- हेडर: अन्य हेडर फ़ील्ड का एक ऑब्जेक्ट (उदाहरण के लिए,
{"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: ईमेल के लिए मैसेज आईडी का हेडर, अगर कोई है.
- विषय: ईमेल का विषय.
- टेक्स्ट: ईमेल का सादा टेक्स्ट.
- एचटीएमएल: ईमेल का एचटीएमएल कॉन्टेंट.
- एएमपी: ईमेल का AMP4EMAIL कॉन्टेंट.
- अटैचमेंट: एक (कई) अटैचमेंट वाला Array; Nodemailer के ये विकल्प काम करते हैं: utf-8 स्ट्रिंग, कॉन्टेंट का कस्टम टाइप, यूआरएल, कोड में बदला गया स्ट्रिंग, डेटा यूआरआई, और पहले से जनरेट किए गए MIME नोड. ध्यान रहे कि आपके ईमेल से Cloud सर्वर के फ़ाइल सिस्टम को ऐक्सेस नहीं किया जा सकता.
बेहतर इस्तेमाल के लिए
इस एक्सटेंशन के बेहतर इस्तेमाल के बारे में जानें:
- ट्रिगर ईमेल एक्सटेंशन के साथ Handlebars टेंप्लेट का इस्तेमाल करना
- ट्रिगर ईमेल एक्सटेंशन की मदद से, डिलीवरी की स्थिति मैनेज करना