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

NestJS में ईमेल डिलीवरी में महारत हासिल करना:Nodemailer के साथ चरण-दर-चरण मार्गदर्शिका

NestJS में ईमेल डिलीवरी में महारत हासिल करना:Nodemailer के साथ चरण-दर-चरण मार्गदर्शिका <पी> Okure U. Edet

द्वारा <पी> Nestjs सीखते समय, मैं Nodemailer के साथ परीक्षण ईमेल भेजने में सक्षम होना चाहता था लेकिन NestJS एप्लिकेशन के संदर्भ में मुझे ऐसा करने में कठिनाई हुई। मैंने समाधान के लिए इंटरनेट पर खोज की और काफी शोध के बाद मुझे एक समाधान मिला। यह वास्तव में सरल निकला।

<पी> इस लेख में, मैं अपना समाधान साझा करूंगा ताकि आप इसे अपने NestJS प्रोजेक्ट्स में उपयोग कर सकें।

सामग्री तालिका

  • NestJS प्रोजेक्ट कैसे सेट करें
  • अपने ऐप में नोडमेलर को कैसे कॉन्फ़िगर करें
  • Nodemailer के साथ ईमेल कैसे भेजें
  • निष्कर्ष

NestJS प्रोजेक्ट कैसे सेट करें

<पी> आदर्श रूप से, जब कोई उपयोगकर्ता पासवर्ड भूलने के मार्ग पर क्लिक करता है, तो उपयोगकर्ता के ईमेल पर एक लिंक भेजा जाना चाहिए, और उस लिंक के माध्यम से, उपयोगकर्ता अपना पासवर्ड रीसेट करने में सक्षम होना चाहिए। यह आलेख एक परीक्षण परिदृश्य प्रदर्शित करेगा कि यह Nodemailer का उपयोग करके कैसे काम करता है।

<पी> अपनी पसंदीदा आईडीई खोलें या टर्मिनल पर नेविगेट करें और निम्नलिखित कमांड पेस्ट करें:

$ npm i -g @nestjs/cli
$ nest new nodemailer-app
<पी> उपरोक्त कमांड nodemailer-app नामक एक नया प्रोजेक्ट तैयार करता है . <पी> ऐसा करने के बाद, अपने प्रोजेक्ट फ़ोल्डर में नेविगेट करें और नोडमेलर पैकेज, npm i --save @nestjs-modules/mailer nodemailer इंस्टॉल करें और प्रकार, npm i --save-dev @types/nodemailer .

अपने ऐप में नोडमेलर को कैसे कॉन्फ़िगर करें

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

<पी> अपनी प्रोजेक्ट निर्देशिका में, ऐप मॉड्यूल फ़ाइल पर जाएं और पैकेज कॉन्फ़िगर करें:

import { Module } from '@nestjs/common';
import { AppController } from './app.controller';
import { AppService } from './app.service';
import { AuthModule } from './auth/auth.module';
import { MailerModule } from '@nestjs-modules/mailer';
@Module({
 imports: [
 AuthModule,
 MailerModule.forRoot({
 transport: {
 host: process.env.EMAIL_HOST,
 auth: {
 user: process.env.EMAIL_USERNAME,
 pass: process.env.EMAIL_PASSWORD,
 },
 },
 }),
 ],
 controllers: [AppController],
 providers: [AppService],
})
export class AppModule {}
<पी> उपरोक्त कोड में, आपने MailerModule आयात किया है @nestjs-modules/mailer से . फिर आपने forRoot() पर कॉल किया उस पर विधि. forRoot() के अंदर विधि, आपने एक परिवहन संपत्ति निर्दिष्ट की है जिसमें होस्ट और ऑथ गुण शामिल हैं।

<पी> mailtrap.io पर अपने इनबॉक्स में अपने क्रेडेंशियल्स से होस्ट, पोर्ट, उपयोगकर्ता नाम और पासवर्ड प्राप्त करना न भूलें।

<पी> आप एक .env बना सकते हैं फ़ाइल जिसमें आपके सभी क्रेडेंशियल विवरण होंगे। ऐसा करना उचित है. उपयुक्त .env लोड करने में सक्षम होने के लिए NestJS में फ़ाइल करें, इसे इंस्टॉल करें:

$ npm i --save @nestjs/config
<पी> फिर आपके app.module.ts में फ़ाइल, एक ConfigModule आयात करें :

import { ConfigModule } from '@nestjs/config';
<पी> अभी भी आपके app.module.ts में है
// include the config module in your imports array
@Module({
 imports: [
 ConfigModule.forRoot({ envFilePath: '.env', isGlobal: true }),
 ],
 controllers: [AppController],
 providers: [AppService],
})

NodeMailer के साथ ईमेल कैसे भेजें

<पी> Nodemailer को कॉन्फ़िगर करने के बाद, इसके साथ ईमेल भेजने का समय आता है।

<पी> आपके app.service.ts में फ़ाइल में निम्नलिखित कोड चिपकाएँ:

import { MailerService } from '@nestjs-modules/mailer';
import { Injectable } from '@nestjs/common';
@Injectable()
export class AppService {
 constructor(private readonly mailService: MailerService) {}
 sendMail() {
 const message = `Forgot your password? If you didn't forget your password, please ignore this email!`;
 this.mailService.sendMail({
 from: 'Kingsley Okure <kingsleyokgeorge@gmail.com>',
 to: 'joanna@gmail.com',
 subject: `How to Send Emails with Nodemailer`,
 text: message,
 });
 }
}
<पी> app.service.ts में फ़ाइल, MailerService इंजेक्ट किया जाता है और फिर ईमेल भेजने के लिए कक्षा में उपयोग किया जाता है। कक्षा के अंदर, MailerService sendMail है फ़ंक्शन जो किसी ऑब्जेक्ट को पैरामीटर के रूप में लेता है। ऑब्जेक्ट में from है , to , subject और text संपत्ति.

<पी> एक बार जब आप यह कर लें, तो app.controller.ts में फ़ाइल में निम्नलिखित कोड चिपकाएँ:

import { Controller, Get, Res } from '@nestjs/common';
import { AppService } from './app.service';
@Controller()
export class AppController {
 constructor(private readonly appService: AppService) {}
 @Get()
 sendMailer(@Res() response: any) {
 const mail = this.appService.sendMail();
 return response.status(200).json({
 message: 'success',
 mail,
 });
 }
}
<पी> नियंत्रक में जो कुछ किया जाता है वह एक Get बनाना है अनुरोध जो sendMail पर कॉल करेगा आपके द्वारा सेवा में बनाया गया फ़ंक्शन.

<पी> आदर्श रूप से, वास्तविक दुनिया के एप्लिकेशन में, यह सब पासवर्ड भूल गए फ़ंक्शन में किया जाएगा। और जैसे ही उपयोगकर्ता भूले हुए पासवर्ड रूट पर क्लिक करेगा, उसे एक ईमेल भेजा जाएगा।

<पी> इस छोटे से सेटअप का परीक्षण करने के लिए, अपना पोस्टमैन खोलें और लोकलहोस्ट:3000 पर जाएं और भेजें दबाएं।

<पी> फिर अपने mailtrap.io इनबॉक्स पर जाएं और अपना संदेश देखें।

निष्कर्ष

<पी> इस लेख में, आपने सीखा कि नोडमेलर के साथ ईमेल कैसे भेजें, एक सॉफ्टवेयर जो डेवलपर्स को एक साथ कई लोगों को ईमेल भेजने में मदद करने के लिए डिज़ाइन किया गया है। <पी> आपने यह भी सीखा है कि NestJs एप्लिकेशन के संदर्भ में इसे कैसे कॉन्फ़िगर और सेट किया जाए।

<पी> यदि आप मुझसे जुड़ना चाहते हैं, तो आप मुझे ट्विटर या लिंक्डइन

पर फ़ॉलो कर सकते हैं <पी> मुफ़्त में कोड करना सीखें. फ्रीकोडकैंप के ओपन सोर्स पाठ्यक्रम ने 40,000 से अधिक लोगों को डेवलपर्स के रूप में नौकरी पाने में मदद की है। आरंभ करें


  1. पीसी पर स्टीम गेमप्ले कैसे रिकॉर्ड करें? पीसी पर स्टीम गेमप्ले कैसे रिकॉर्ड करें?

    क्या आप विंडोज 10 पर स्टीम गेमप्ले रिकॉर्ड करना चाहते हैं? गेमर्स के लिए, स्टीम क्लाउड-आधारित गेमिंग लाइब्रेरी हो सकती है, जिससे गेमर्स किसी भी कंप्यूटर का उपयोग गेम खेलने के लिए कर सकते हैं जो वे अपने स्टीम खातों में खरीदते/डाउनलोड करते हैं। गेमिंग के कुछ बेहतरीन पल रिकॉर्ड करने लायक होते हैं। उदा

  1. फिक्स:लॉग ऑन करने की समय सीमा आउटलुक में पहुंच गई थी फिक्स:लॉग ऑन करने की समय सीमा आउटलुक में पहुंच गई थी

    आउटलुक में लॉग ऑन करने की समय सीमा समाप्त हो गई थी संगतता मोड में चलने वाले आउटलुक, कैश्ड मोड में कनेक्शन की समस्या, दूषित / विरोधी अस्थायी फ़ोल्डर सामग्री, गलत तरीके से कॉन्फ़िगर की गई प्रॉक्सी सेटिंग्स, परस्पर विरोधी आईएसपी के प्रतिबंध, गलत तरीके से कॉन्फ़िगर की गई नेटवर्क सेटिंग्स, 2-कारक सत्यापन

  1. एक्सेल में स्टेट सिटी और ज़िप कोड का पदानुक्रम कैसे बनाएं एक्सेल में स्टेट सिटी और ज़िप कोड का पदानुक्रम कैसे बनाएं

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