Nodemailer হল একটি Node.js মডিউল যা আপনাকে আপনার সার্ভার থেকে সহজে ইমেল পাঠাতে দেয়। আপনি আপনার ব্যবহারকারীদের সাথে যোগাযোগ করতে চান বা কিছু ভুল হয়ে গেলে নিজেকে জানান, এটি করার বিকল্পগুলির মধ্যে একটি হল মেলের মাধ্যমে৷
বেয়ারবোন আকারে নোডমেলার কীভাবে ব্যবহার করবেন তা ব্যাখ্যা করার জন্য অনেকগুলি নিবন্ধ রয়েছে, তবে এই নিবন্ধটি তাদের মধ্যে একটি নয়। এখানে, আমি Nodemailer এবং Gmail ব্যবহার করে আপনার Node.js ব্যাকএন্ড থেকে একটি ইমেল পাঠানোর সবচেয়ে সাধারণ অনুশীলন দেখাব৷
কীভাবে নোডমেইলার দিয়ে শুরু করবেন
প্রথমে, এক্সপ্রেস ব্যবহার করে আমাদের Node.js বয়লারপ্লেট সেট আপ করতে হবে। আপনার নোড এবং npm ইনস্টল আছে তা নিশ্চিত করতে, আপনি নিম্নলিখিত কমান্ডগুলি চালাতে পারেন:
node -v
npm -v
যদি এই উভয় কমান্ড একটি সংস্করণ দেখায়, আপনি যেতে ভাল. অন্যথায়, যা অনুপস্থিত তা ইনস্টল করুন।
আপনার প্রকল্পের জন্য একটি ডিরেক্টরি তৈরি করুন। আমরা nodemailerProject ব্যবহার করব .
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}`)
})
এক্সপ্রেস ব্যবহার করে একটি সাধারণ সার্ভার শুরু করার জন্য যা প্রয়োজন তা উপরে। আপনি দেখতে পাচ্ছেন যে এটি চালানোর মাধ্যমে সঠিকভাবে কাজ করছে:
node index.js
কিভাবে Nodemailer ইনস্টল করবেন
নিম্নলিখিত কমান্ড ব্যবহার করে nodemailer ইনস্টল করুন:
npm install nodemailer
Nodemailer's API বেশ সহজ এবং আমাদের নিম্নলিখিতগুলি করতে হবে:
- একটি পরিবহনকারী তৈরি করুন বস্তু
- একটি মেল বিকল্প তৈরি করুন বস্তু
- 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
}
});
✋ মনোযোগ দিন, ব্যবহারকারী এবং পাস কীগুলি ছাড়াও, যেগুলি আপনার জিমেইল অ্যাকাউন্টের জন্য আপনার নিজস্ব শংসাপত্র, অন্য তিনটি কীগুলি OAuth সেট আপ করার পরে পুনরুদ্ধার করতে হবে৷
আমরা এই নিবন্ধের শুরুতে যেমন বলেছি, আমরা আমাদের মেল পাঠানোর প্রয়োজনে Gmail ব্যবহার করব। আপনি হয়তো অনুমান করেছেন, ব্যবহারকারীর অ্যাকাউন্টের মাধ্যমে/প্রেরিত মেইলের ক্ষেত্রে Gmail-এর উচ্চ স্তরের নিরাপত্তা রয়েছে।
আমরা এই বাধা অতিক্রম করতে পারি এমন অনেকগুলি উপায় রয়েছে (অন্যদের থেকে কিছু ভাল), এবং আমরা এমন একটি বেছে নেব যার জন্য আমাদের Google ক্লাউড প্ল্যাটফর্ম-এ একটি প্রকল্প সেট আপ করতে হবে৷ . Gmail দ্বারা সক্ষম OAuth নিরাপত্তার জন্য শংসাপত্রের জন্য আমাদের এটি করতে হবে৷
যদি আপনি nodemailer এর সাথে Gmail ব্যবহার করার জটিলতা সম্পর্কে আরও পড়তে চান, তাহলে এখানে যান।
পরবর্তী পদক্ষেপগুলির জন্য কোডিংয়ের পরিবর্তে কিছু কনফিগারেশনের প্রয়োজন হবে, তাই নিজেকে বন্ধন করুন৷
Google ক্লাউড প্ল্যাটফর্ম কনফিগারেশন
আপনার যদি একটি Google ক্লাউড প্ল্যাটফর্ম অ্যাকাউন্ট না থাকে তবে একটি পূর্বশর্ত হিসাবে সেট আপ করতে ভুলবেন না। একবার আপনি এটি সেট আপ করার পরে, উপরের বাম কোণে ড্রপডাউন মেনুতে ক্লিক করে একটি নতুন প্রকল্প তৈরি করুন৷
নতুন প্রকল্প বিকল্পটি নির্বাচন করুন:
পরবর্তী উইন্ডোতে, আমাদের প্রকল্পের একটি নাম দিতে হবে। আপনি যা চান তা বেছে নিন, কিন্তু আমরা NodemailerProject ছাড়াই চালিয়ে যাব নাম অবস্থান সম্পত্তির জন্য, আপনি এটিকে কোন সংস্থা নয় বলে ছেড়ে দিতে পারেন৷
৷প্রজেক্ট সেট আপ হতে কয়েক সেকেন্ড সময় লাগতে পারে, কিন্তু তার পরে আপনি এই স্ক্রীনটি দেখতে সক্ষম হবেন:
উপরের বাম কোণায় তিনটি ড্যাশ করা লাইনে ক্লিক করে নেভিগেশন মেনু খুলুন এবং এপিআই এবং পরিষেবাগুলি: নির্বাচন করুন
Nodemailer এবং Gmail ব্যবহার করতে সক্ষম হওয়ার জন্য আমাদের OAuth2 ব্যবহার করতে হবে। আপনি যদি OAuth এর সাথে পরিচিত না হন তবে এটি প্রমাণীকরণের জন্য একটি প্রোটোকল। আমি এখানে সুনির্দিষ্টভাবে প্রবেশ করব না কারণ এটি প্রয়োজনীয় নয়, তবে আপনি যদি এটি সম্পর্কে আরও বুঝতে চান তবে এখানে যান৷
প্রথমে আমাদের OAuth কনসেন্ট স্ক্রীন কনফিগার করতে হবে:
আপনি যদি G-Suite-এর সদস্য না হন তবে ব্যবহারকারীর প্রকারের জন্য বহিরাগত বিকল্পটি উপলব্ধ হবে৷
তৈরি করুন ক্লিক করার পর, পরবর্তী স্ক্রিনে আমাদের আবেদনের তথ্য (আমাদের সার্ভার) পূরণ করতে হবে:
ব্যবহারকারী সমর্থন ইমেল ক্ষেত্রে এবং বিকাশকারী যোগাযোগের তথ্য ক্ষেত্রে আপনার ইমেলটি পূরণ করুন৷ Save and Continue-এ ক্লিক করা আমাদের এই কনফিগারেশনের স্কোপ ফেজে নিয়ে যাবে। এই পর্যায়টি এড়িয়ে যান, কারণ এটি আমাদের জন্য প্রাসঙ্গিক নয়, এবং পরীক্ষামূলক ব্যবহারকারী পর্বে যান৷
এখানে, নিজেকে একজন ব্যবহারকারী হিসাবে যুক্ত করুন এবং সংরক্ষণ করুন এবং চালিয়ে যান ক্লিক করুন৷
কিভাবে আপনার OAuth সেটিংস কনফিগার করবেন
এই পর্বে আমরা Nodemailer এর সাথে ব্যবহার করার জন্য OAuth শংসাপত্র তৈরি করব। OAuth কনসেন্ট স্ক্রিনের উপরে ক্রেডেনশিয়াল ট্যাবে যান। যোগ (➕) চিহ্নটিতে ক্লিক করুন যাতে লেখা আছে প্রমাণপত্র তৈরি করুন এবং OAuth ক্লায়েন্ট আইডি বেছে নিন।
অ্যাপ্লিকেশন টাইপ ড্রপডাউন মেনুতে, ওয়েব অ্যাপ্লিকেশন বেছে নিন :
অনুমোদিত পুনঃনির্দেশ URIs-এ বিভাগে, OAuth2 প্লেগ্রাউন্ড (https://developers.google.com/oauthplayground) যোগ করা নিশ্চিত করুন কারণ এই নিবন্ধের শুরুতে উল্লেখ করা কীগুলির একটি পেতে আমরা এটি ব্যবহার করব।
তৈরি করুন ক্লিক করার পরে, আপনাকে আপনার ক্লায়েন্ট আইডি এবং ক্লায়েন্ট গোপনীয়তা উপস্থাপন করা হবে। এগুলিকে নিজের কাছে রাখুন এবং কখনই এগুলিকে কোনও উপায়ে, আকারে বা আকারে প্রকাশ করবেন না৷ .
আপনার OAuth রিফ্রেশ টোকেন পান
রিফ্রেশ টোকেন পেতে, যা আমরা Nodemailer-এ ট্রান্সপোর্টার অবজেক্টের মধ্যে ব্যবহার করব, আমাদের OAuth2 খেলার মাঠে যেতে হবে। আমরা পূর্ববর্তী পর্যায়ে এই নির্দিষ্ট উদ্দেশ্যে এই URI অনুমোদন করেছি৷
1. ডানদিকে গিয়ার আইকনে ক্লিক করুন (যা হল OAuth2 কনফিগারেশন) এবং আপনার নিজস্ব OAuth2 শংসাপত্রগুলি ব্যবহার করতে চেকবক্সটি চেক করুন:
2. ওয়েবসাইটের বাম দিকে তাকান এবং আপনি পরিষেবাগুলির একটি তালিকা দেখতে পাবেন৷ আপনি Gmail API v1 দেখতে না পাওয়া পর্যন্ত নিচে স্ক্রোল করুন।
3. এপিআই অনুমোদন করুন ক্লিক করুন৷
আপনার যেকোনো জিমেইল অ্যাকাউন্টে লগইন করার জন্য আপনাকে একটি স্ক্রিন দেওয়া হবে। আপনি একটি পরীক্ষা ব্যবহারকারী হিসাবে তালিকাভুক্ত একটি চয়ন করুন.
4. পরবর্তী স্ক্রীন আপনাকে জানাবে যে Google এখনও এই অ্যাপ্লিকেশনটি যাচাই করেনি, কিন্তু এটি ঠিক আছে যেহেতু আমরা এটি যাচাইয়ের জন্য জমা দিইনি৷ চালিয়ে যান ক্লিক করুন৷
৷5. পরবর্তী স্ক্রিনে, আপনাকে আপনার জিমেইল অ্যাকাউন্টের সাথে ইন্টারঅ্যাক্ট করার জন্য আপনার প্রকল্পের অনুমতি দিতে বলা হবে। তাই করুন।
6. একবার এটি হয়ে গেলে, আপনাকে আবার OAuth খেলার মাঠে পুনঃনির্দেশিত করা হবে এবং আপনি দেখতে পাবেন যে মেনুতে বাম দিকে একটি অনুমোদন কোড রয়েছে৷ টোকেনের জন্য অনুমোদন কোড বিনিময় করুন লেবেল করা নীল বোতামে ক্লিক করুন .
রিফ্রেশ টোকেন এবং অ্যাক্সেস টোকেনের জন্য ক্ষেত্রগুলি এখন পূরণ করা হবে৷
সার্ভারে ফিরে যান
৷এই সমস্ত কনফিগারেশন করার পরে, আমরা আমাদের অ্যাপ্লিকেশনে ফিরে যেতে পারি এবং ট্রান্সপোর্টার তৈরিতে সেই সমস্ত ডেটা ইনপুট করতে পারি। আপনার সমস্ত শংসাপত্র ব্যক্তিগত রাখার জন্য, আপনি dotenv প্যাকেজ ব্যবহার করতে পারেন। আপনি .gitignore এ যে .env ফাইলটি তৈরি করবেন তা যোগ করতে ভুলবেন না।
সুতরাং, এখন আমাদের কাছে এটি আছে:
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'
};
এই বস্তুটির আরও অনেক ক্ষেত্র এবং এমনকি একাধিক প্রাপক থাকতে পারে, কিন্তু আমরা এখানে সেদিকে যাব না৷
অবশেষে, আমরা sendMail পদ্ধতি ব্যবহার করব:
transporter.sendMail(mailOptions, function(err, data) {
if (err) {
console.log("Error " + err);
} else {
console.log("Email sent successfully");
}
});
আপনার অ্যাপ্লিকেশনটি চালান এবং আপনি দেখতে পাবেন আপনার ইনবক্স একটি নতুন ইমেল দ্বারা পরিপূর্ণ হচ্ছে৷
৷এই নিবন্ধটি আমার তৈরি একটি প্রকল্প থেকে অনুপ্রাণিত হয়েছে যা নোডমেলার ব্যবহার করে। আপনি যদি এটি পরীক্ষা করতে চান তবে এখানে যান৷
৷