Okure U. Edet
দ্বারাNestjs শেখার সময়, আমি Nodemailer এর সাথে পরীক্ষামূলক ইমেল পাঠাতে সক্ষম হতে চেয়েছিলাম কিন্তু NestJS অ্যাপ্লিকেশনের প্রেক্ষাপটে এটি করতে আমার অসুবিধা হয়েছিল। আমি একটি সমাধানের জন্য ইন্টারনেট অনুসন্ধান করেছি এবং অনেক গবেষণার পরে, আমি একটি খুঁজে পেয়েছি। এটা সত্যিই সহজ হতে পরিণত.
এই নিবন্ধে, আমি আমার সমাধান শেয়ার করব যাতে আপনি এটি আপনার NestJS প্রকল্পগুলিতে ব্যবহার করতে পারেন।
সূচিপত্র
- কিভাবে একটি NestJS প্রকল্প সেট আপ করবেন
- কিভাবে আপনার অ্যাপে নোডমেলার কনফিগার করবেন
- নোডমেইলার দিয়ে কিভাবে ইমেল পাঠাবেন
- উপসংহার
কীভাবে একটি NestJS প্রকল্প সেট আপ করবেন
আদর্শভাবে, যখন একজন ব্যবহারকারী পাসওয়ার্ড ভুলে যাওয়া রুটে ক্লিক করেন, তখন ব্যবহারকারীর ইমেলে একটি লিঙ্ক পাঠানো উচিত এবং সেই লিঙ্কের মাধ্যমে ব্যবহারকারী তাদের পাসওয়ার্ড পুনরায় সেট করতে সক্ষম হওয়া উচিত। এই নিবন্ধটি নোডমেইলার ব্যবহার করে এটি কীভাবে কাজ করে তার একটি পরীক্ষার কেস পরিস্থিতি প্রদর্শন করবে৷
আপনার প্রিয় IDE খুলুন বা টার্মিনালে নেভিগেট করুন এবং নিম্নলিখিত কমান্ডটি আটকান:
$ npm i -g @nestjs/cli
$ nest new nodemailer-app
উপরের কমান্ডগুলি nodemailer-app নামে একটি নতুন প্রকল্প তৈরি করে .
এটি করার পরে, আপনার প্রকল্প ফোল্ডারে নেভিগেট করুন এবং Nodemailer প্যাকেজগুলি ইনস্টল করুন, 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 কনফিগার করার পরে, এটির সাথে ইমেল পাঠানোর সময় এসেছে৷
আপনার 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 ইনবক্সে যান এবং আপনার বার্তা দেখুন৷
৷উপসংহার
এই নিবন্ধে, আপনি Nodemailer-এর সাহায্যে ইমেল পাঠাতে শিখেছেন, একটি সফ্টওয়্যার যা ডেভেলপারদের একযোগে একাধিক ব্যক্তিকে ইমেল পাঠাতে সাহায্য করার জন্য ডিজাইন করা হয়েছে।
আপনি NestJs অ্যাপ্লিকেশনের পরিপ্রেক্ষিতে কীভাবে কনফিগার এবং সেট আপ করতে হয় তাও শিখেছেন৷
আপনি যদি আমার সাথে সংযোগ করতে চান, আপনি আমাকে টুইটারে বা Linkedin
-এ অনুসরণ করতে পারেনবিনামূল্যে কোড শিখুন. freeCodeCamp-এর ওপেন সোর্স পাঠ্যক্রম 40,000-এরও বেশি লোককে ডেভেলপার হিসেবে চাকরি পেতে সাহায্য করেছে। শুরু করুন