Computer >> कंप्यूटर >  >> सॉफ्टवेयर >> मेल

अपने Node.js सर्वर से ईमेल भेजने के लिए Nodemailer का उपयोग कैसे करें

Nodemailer एक Node.js मॉड्यूल है जो आपको अपने सर्वर से आसानी से ईमेल भेजने की अनुमति देता है। चाहे आप अपने उपयोगकर्ताओं के साथ संवाद करना चाहते हों या कुछ गलत होने पर खुद को सूचित करना चाहते हों, ऐसा करने का एक विकल्प मेल के माध्यम से है।

वहाँ कई लेख हैं जो बताते हैं कि Nodemailer को नंगे हड्डियों के रूप में कैसे उपयोग किया जाए, लेकिन यह लेख उनमें से एक नहीं है। यहां, मैं आपके Node.js बैकएंड से Nodemailer और Gmail का उपयोग करके ईमेल भेजने का सबसे सामान्य अभ्यास दिखाऊंगा।

नोडेमेलर के साथ शुरुआत कैसे करें

सबसे पहले, हमें एक्सप्रेस का उपयोग करके अपना Node.js बॉयलरप्लेट सेट करना होगा। यह सुनिश्चित करने के लिए कि आपके पास नोड और npm स्थापित है, आप निम्न कमांड चला सकते हैं:

node -v 
npm -v

यदि ये दोनों आदेश एक संस्करण दिखाते हैं, तो आप जाने के लिए अच्छे हैं। अन्यथा, जो गुम है उसे स्थापित करें।

अपनी परियोजना के लिए एक निर्देशिका बनाएँ। हम नोडमेलरप्रोजेक्ट का उपयोग करेंगे ।

mkdir nodemailerProject

नई बनाई गई निर्देशिका के अंदर जाएं और चलाएं

npm init

यह हमारे प्रोजेक्ट को pacakge.json . के साथ आरंभ करेगा फ़ाइल।

इसके बाद, हमें एक्सप्रेस का उपयोग करके इंस्टॉल करना होगा:

npm install express

इस पर निर्भर करते हुए कि आपने किस फ़ाइल को अपने प्रवेश बिंदु के रूप में इंगित किया है (डिफ़ॉल्ट index.js है), इसे खोलें और निम्नलिखित कोड पेस्ट करें:

const express = require('express')
const app = express()
const port = 3000


app.listen(port, () => {
  console.log(`nodemailerProject is listening at https://localhost:${port}`)
})
index.js

ऊपर वही है जो एक्सप्रेस का उपयोग करके एक साधारण सर्वर शुरू करने के लिए आवश्यक है। आप देख सकते हैं कि यह चलकर ठीक से काम कर रहा है:

node index.js

नोडेमेलर कैसे स्थापित करें

निम्नलिखित कमांड का उपयोग करके नोडमेलर स्थापित करें:

npm install nodemailer

Nodemailer का API बहुत आसान है और हमें निम्नलिखित करने की आवश्यकता है:

  1. एक ट्रांसपोर्टर बनाएं वस्तु
  2. एक मेल विकल्प बनाएं वस्तु
  3. Transporter.sendMail का उपयोग करें विधि

ट्रांसपोर्टर ऑब्जेक्ट बनाने के लिए, हम निम्न कार्य करते हैं:

let transporter = nodemailer.createTransport({
      service: 'gmail',
      auth: {
        type: 'OAuth2',
        user: process.env.MAIL_USERNAME,
        pass: process.env.MAIL_PASSWORD,
        clientId: process.env.OAUTH_CLIENTID,
        clientSecret: process.env.OAUTH_CLIENT_SECRET,
        refreshToken: process.env.OAUTH_REFRESH_TOKEN
      }
    });
✋ ध्यान दें, उपयोगकर्ता और पास कुंजियों के अलावा, जो आपके gmail खाते के लिए आपके स्वयं के क्रेडेंशियल हैं, अन्य तीन कुंजियों को OAuth सेट करने के बाद पुनर्प्राप्त करने की आवश्यकता है।

जैसा कि हमने इस लेख की शुरुआत में कहा था, हम अपनी मेल भेजने की जरूरतों के लिए जीमेल का उपयोग करेंगे। जैसा कि आपने अनुमान लगाया होगा, जब किसी उपयोगकर्ता के खाते द्वारा/भेजे गए मेल की बात आती है तो जीमेल में उच्च स्तर की सुरक्षा होती है।

हम इस बाधा को दूर करने के कई तरीके हैं (कुछ दूसरों की तुलना में बेहतर), और हम उसे चुनेंगे जिसके लिए हमें Google क्लाउड प्लेटफ़ॉर्म में एक प्रोजेक्ट सेट करना होगा। . Gmail द्वारा सक्षम OAuth सुरक्षा के लिए क्रेडेंशियल प्राप्त करने के लिए हमें ऐसा करने की आवश्यकता है।

यदि आप नोडमेलर के साथ जीमेल का उपयोग करने की जटिलताओं के बारे में अधिक पढ़ना चाहते हैं, तो यहां जाएं।

अगले चरणों में कोडिंग के बजाय कुछ कॉन्फ़िगरेशन की आवश्यकता होगी, इसलिए स्वयं को तैयार करें।

अपने Node.js सर्वर से ईमेल भेजने के लिए Nodemailer का उपयोग कैसे करें
फोटो डेनियल मैकुलॉ / अनस्प्लैश द्वारा

Google Cloud Platform कॉन्फ़िगरेशन

यदि आपके पास Google क्लाउड प्लेटफ़ॉर्म खाता नहीं है, तो इसे एक पूर्वापेक्षा के रूप में सेट करना सुनिश्चित करें। एक बार जब आप इसे सेट कर लें, तो ऊपरी बाएं कोने में ड्रॉपडाउन मेनू पर क्लिक करके एक नया प्रोजेक्ट बनाएं।

अपने Node.js सर्वर से ईमेल भेजने के लिए Nodemailer का उपयोग कैसे करें

नया प्रोजेक्ट विकल्प चुनें:

अपने Node.js सर्वर से ईमेल भेजने के लिए Nodemailer का उपयोग कैसे करें

अगली विंडो में, हमें अपने प्रोजेक्ट को एक नाम देना होगा। आप जो चाहें चुनें, लेकिन हम NodemailerProject . के साथ जारी रखेंगे नाम। स्थान संपत्ति के लिए, आप इसे कोई संगठन नहीं के रूप में छोड़ सकते हैं।

अपने Node.js सर्वर से ईमेल भेजने के लिए Nodemailer का उपयोग कैसे करें

प्रोजेक्ट को सेट होने में कुछ सेकंड लग सकते हैं, लेकिन उसके बाद आप यह स्क्रीन देख पाएंगे:

अपने Node.js सर्वर से ईमेल भेजने के लिए Nodemailer का उपयोग कैसे करें

शीर्ष बाएं कोने में तीन धराशायी लाइनों पर क्लिक करके नेविगेशन मेनू खोलें और एपीआई और सेवाएं: चुनें।

अपने Node.js सर्वर से ईमेल भेजने के लिए Nodemailer का उपयोग कैसे करें

Nodemailer और Gmail का उपयोग करने में सक्षम होने के लिए हमें OAuth2 का उपयोग करना होगा। यदि आप OAuth से परिचित नहीं हैं, तो यह प्रमाणीकरण के लिए एक प्रोटोकॉल है। मैं यहाँ विवरण में नहीं जाऊँगा क्योंकि यह आवश्यक नहीं है, लेकिन यदि आप इसके बारे में और अधिक समझना चाहते हैं, तो यहाँ जाएँ।

सबसे पहले हमें अपनी OAuth सहमति स्क्रीन को कॉन्फ़िगर करना होगा:

अपने Node.js सर्वर से ईमेल भेजने के लिए Nodemailer का उपयोग कैसे करें

यदि आप G-Suite के सदस्य नहीं हैं, तो उपयोगकर्ता प्रकार के लिए बाहरी विकल्प ही उपलब्ध एकमात्र विकल्प होगा।

अपने Node.js सर्वर से ईमेल भेजने के लिए Nodemailer का उपयोग कैसे करें

क्रिएट पर क्लिक करने के बाद, अगली स्क्रीन में हमें एप्लिकेशन की जानकारी (हमारे सर्वर) को भरने की आवश्यकता होती है:

अपने Node.js सर्वर से ईमेल भेजने के लिए Nodemailer का उपयोग कैसे करें

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

अपने Node.js सर्वर से ईमेल भेजने के लिए Nodemailer का उपयोग कैसे करें

यहां, अपने आप को एक उपयोगकर्ता के रूप में जोड़ें और सहेजें और जारी रखें पर क्लिक करें।

अपनी OAuth सेटिंग कैसे कॉन्फ़िगर करें

इस चरण में हम Nodemailer के साथ उपयोग करने के लिए OAuth क्रेडेंशियल बनाएंगे। OAuth सहमति स्क्रीन के ऊपर क्रेडेंशियल टैब पर जाएं। उस प्लस (➕) चिह्न पर क्लिक करें जिसमें टेक्स्ट क्रेडेंशियल्स बनाएं . है और OAuth क्लाइंट आईडी चुनें।

अपने Node.js सर्वर से ईमेल भेजने के लिए Nodemailer का उपयोग कैसे करें

एप्लिकेशन प्रकार ड्रॉपडाउन मेनू में, वेब एप्लिकेशन चुनें :

अपने Node.js सर्वर से ईमेल भेजने के लिए Nodemailer का उपयोग कैसे करें

अधिकृत रीडायरेक्ट यूआरआई . में अनुभाग में, OAuth2 खेल का मैदान (https://developers.google.com/oauthplayground) जोड़ना सुनिश्चित करें क्योंकि हम इसका उपयोग उन कुंजियों में से एक प्राप्त करने के लिए करेंगे जिनका उल्लेख इस लेख की शुरुआत में किया गया था।

अपने Node.js सर्वर से ईमेल भेजने के लिए Nodemailer का उपयोग कैसे करें

create पर क्लिक करने के बाद आपको आपकी क्लाइंट आईडी और क्लाइंट सीक्रेट के साथ प्रस्तुत किया जाएगा। इन्हें अपने पास रखें और कभी भी इन्हें किसी भी तरह, आकार या रूप में उजागर न करें

अपने Node.js सर्वर से ईमेल भेजने के लिए Nodemailer का उपयोग कैसे करें
फ़ोटो बाय पावर लाइ / अनस्प्लैश

अपना OAuth रीफ़्रेश टोकन प्राप्त करें

ताज़ा टोकन प्राप्त करने के लिए, जिसे हम Nodemailer में ट्रांसपोर्टर ऑब्जेक्ट के भीतर उपयोग करेंगे, हमें OAuth2 खेल के मैदान पर जाने की आवश्यकता है। हमने पहले चरण में इस विशिष्ट उद्देश्य के लिए इस यूआरआई को मंजूरी दी थी।

1. दाईं ओर स्थित गियर आइकन पर क्लिक करें (जो कि OAuth2 कॉन्फ़िगरेशन है) और अपने स्वयं के OAuth2 क्रेडेंशियल का उपयोग करने के लिए चेकबॉक्स चेक करें:

अपने Node.js सर्वर से ईमेल भेजने के लिए Nodemailer का उपयोग कैसे करें

2. वेबसाइट के बाईं ओर देखें और आपको सेवाओं की एक सूची दिखाई देगी। जब तक आपको Gmail API v1 दिखाई न दे, तब तक नीचे स्क्रॉल करें।

अपने Node.js सर्वर से ईमेल भेजने के लिए Nodemailer का उपयोग कैसे करें

3. एपीआई अधिकृत करें Click क्लिक करें

आपको अपने किसी भी जीमेल खाते में लॉगिन करने के लिए एक स्क्रीन के साथ प्रस्तुत किया जाएगा। वह चुनें जिसे आपने परीक्षण उपयोगकर्ता के रूप में सूचीबद्ध किया है।

4. अगली स्क्रीन आपको बताएगी कि Google ने अभी भी इस एप्लिकेशन को सत्यापित नहीं किया है, लेकिन यह ठीक है क्योंकि हमने इसे सत्यापन के लिए सबमिट नहीं किया है। जारी रखें क्लिक करें।

अपने Node.js सर्वर से ईमेल भेजने के लिए Nodemailer का उपयोग कैसे करें

5. अगली स्क्रीन में, आपको अपने प्रोजेक्ट को अपने जीमेल अकाउंट से इंटरैक्ट करने की अनुमति देने के लिए कहा जाएगा। ऐसा करें।

अपने Node.js सर्वर से ईमेल भेजने के लिए Nodemailer का उपयोग कैसे करें

6. एक बार ऐसा करने के बाद, आपको OAuth खेल के मैदान पर वापस भेज दिया जाएगा और आप देख सकते हैं कि बाईं ओर मेनू में एक प्राधिकरण कोड है। टोकन के लिए प्राधिकरण कोड का आदान-प्रदान करें . लेबल वाले नीले बटन पर क्लिक करें ।

रीफ़्रेश टोकन और एक्सेस टोकन के लिए फ़ील्ड अब भर दिए जाएंगे।

सर्वर पर वापस जाएं

उन सभी कॉन्फ़िगरेशन को करने के बाद, हम अपने एप्लिकेशन पर वापस आ सकते हैं और उस सभी डेटा को ट्रांसपोर्टर निर्माण में इनपुट कर सकते हैं। अपने सभी क्रेडेंशियल्स को निजी रखने के लिए, आप dotenv पैकेज का उपयोग कर सकते हैं। उस .env फ़ाइल को भी जोड़ना न भूलें जिसे आप .gitignore में बनाएंगे।

तो, अब हमारे पास यह है:

let transporter = nodemailer.createTransport({
      service: 'gmail',
      auth: {
        type: 'OAuth2',
        user: process.env.MAIL_USERNAME,
        pass: process.env.MAIL_PASSWORD,
        clientId: process.env.OAUTH_CLIENTID,
        clientSecret: process.env.OAUTH_CLIENT_SECRET,
        refreshToken: process.env.OAUTH_REFRESH_TOKEN
      }
    });

इसके बाद, हम mailOptions ऑब्जेक्ट बनाएंगे, जिसमें यह विवरण होगा कि ईमेल कहां भेजना है और किस डेटा के साथ।

let mailOptions = {
      from: [email protected],
      to: [email protected],
      subject: 'Nodemailer Project',
      text: 'Hi from your nodemailer project'
    };

इस ऑब्जेक्ट में कई और फ़ील्ड हो सकते हैं और यहां तक ​​कि कई प्राप्तकर्ता भी हो सकते हैं, लेकिन हम यहां उस पर नहीं जाएंगे।

अंत में, हम सेंडमेल विधि का उपयोग करेंगे:

transporter.sendMail(mailOptions, function(err, data) {
      if (err) {
        console.log("Error " + err);
      } else {
        console.log("Email sent successfully");
      }
    });

अपना एप्लिकेशन चलाएँ और आप देखेंगे कि आपका इनबॉक्स एक नए ईमेल से भरा हुआ है।

यह आलेख मेरे द्वारा बनाई गई एक परियोजना से प्रेरित था जो Nodemailer का उपयोग करता है। अगर आप इसे देखना चाहते हैं, तो यहां जाएं।


  1. ईमेलजेएस के साथ अपने Vue.js एप्लिकेशन से ईमेल कैसे भेजें

    कुछ दिनों पहले मैंने एक साधारण Vue प्रोजेक्ट पर काम करने का फैसला किया और मेरे द्वारा अभी बनाए गए संपर्क के माध्यम से ईमेल भेजने की आवश्यकता थी। जब भी कोई मेरा संपर्क फ़ॉर्म भरता है, तो मैं हर बार एक स्वचालित ईमेल प्राप्त करना चाहता था। तो मुझे ईमेलजे पर खोजना और ठोकर खाना पड़ा। मैंने इस लेख को लि

  1. अपने Mac से एन्क्रिप्टेड ईमेल कैसे भेजें

    ईमेल का आदान-प्रदान आमतौर पर एक सुरक्षित मामला रहा है और प्रदाता आपके द्वारा भेजे और प्राप्त ईमेल की सुरक्षा का ध्यान रखते हैं। हालांकि ईमेल एन्क्रिप्शन एक ऐसी चीज है जो आपके द्वारा उपयोग की जाने वाली सभी ईमेल सेवाओं में उपलब्ध नहीं हो सकती है। यदि आप अपने ईमेल को और सुरक्षित करना चाहते हैं, तो आप इ

  1. अपने कंप्यूटर से टेक्स्ट संदेश कैसे भेजें

    Google और Apple के बीच प्रतिद्वंद्विता किसी से छिपी नहीं है। वे ज्यादातर समय नए उत्पादों या सेवाओं के रिलीज को लेकर एक-दूसरे के साथ प्रतिस्पर्धा में रहते हैं। अब एक हालिया रिलीज़ में Google ने अपने मैसेजिंग ऐप Android संदेशों को एक नई सुविधा, वेब के लिए संदेश जोड़कर और अधिक शक्तिशाली बना दिया है। इस