जावास्क्रिप्ट (Node.js) पर ईमेल भेजना: nodemailer, sendgrid, mailgun
ईमेल भेजना आधुनिक वेब एप्लिकेशन के प्रमुख कार्यों में से एक है: उपयोगकर्ता पंजीकरण, पासवर्ड रीसेट, सूचनाएं और मार्केटिंग न्यूज़लेटर। Node.js इकोसिस्टम में कई सिद्ध समाधान हैं जो मिनटों में ईमेल कार्यक्षमता को एकीकृत करने की अनुमति देते हैं। इस लेख में, हम तीन लोकप्रिय टूल्स पर विस्तार से चर्चा करेंगे: nodemailer, sendgrid और mailgun। आप सीखेंगे कि SMTP कैसे सेट करें, अटैचमेंट और HTML टेम्पलेट के साथ ईमेल कैसे भेजें, और किन मेट्रिक्स को ट्रैक करना है।
1. Nodemailer — बहुमुखी SMTP क्लाइंट
Nodemailer Node.js में ईमेल भेजने के लिए सबसे लोकप्रिय लाइब्रेरी है। यह SMTP, SES, Sendmail और कई ट्रांसपोर्ट को सपोर्ट करता है। मुख्य लाभ:
- SMTP खाते (Gmail, Yandex, Mail.ru) के माध्यम से सरल सेटअप।
- अटैचमेंट, इनलाइन इमेज, HTML टेम्पलेट के लिए समर्थन।
- कतारों और कनेक्शन पूल के साथ काम करना।
async/awaitके माध्यम से एसिंक्रोनस भेजना।
स्थापना और बुनियादी भेजना
npm install nodemailerconst nodemailer = require('nodemailer');
const transporter = nodemailer.createTransport({ host: 'smtp.gmail.com', port: 587, secure: false, // 465 पोर्ट के लिए true auth: { user: 'your-email@gmail.com', pass: 'your-password' // या ऐप-पासवर्ड }});
const mailOptions = { from: '"प्रेषक" <your-email@gmail.com>', to: 'recipient@example.com', subject: 'Node.js से नमस्ते!', text: 'यह एक परीक्षण ईमेल है।', html: '<h1>नमस्ते!</h1><p>यह HTML संस्करण है।</p>'};
const sendMail = async () => { const info = await transporter.sendMail(mailOptions); console.log('ईमेल भेजा गया:', info.messageId);};
sendMail().catch(console.error);अटैचमेंट के साथ भेजना
const mailOptions = { // ...मुख्य फ़ील्ड attachments: [ { filename: 'document.pdf', path: '/path/to/document.pdf' }, { filename: 'image.png', content: fs.createReadStream('/path/to/image.png') } ]};महत्वपूर्ण: Gmail के लिए ऐप पासवर्ड या OAuth2 का उपयोग करें।
2. SendGrid — लेन-देन संबंधी ईमेल के लिए क्लाउड सेवा
SendGrid (Twilio का हिस्सा) उच्च वितरण क्षमता के साथ ईमेल भेजने के लिए एक शक्तिशाली API प्रदान करता है। यह स्टार्टअप और बड़ी परियोजनाओं के लिए उपयुक्त है। मुख्य विशेषताएं:
- एक्सेस कुंजियों के साथ API (SMTP के बिना)।
- डायनामिक टेम्पलेट (Handlebars)।
- एनालिटिक्स: खोलना, क्लिक, अनसब्सक्राइब।
- प्रति दिन 100 ईमेल तक का मुफ्त प्लान।
स्थापना और भेजना
npm install @sendgrid/mailconst sgMail = require('@sendgrid/mail');sgMail.setApiKey(process.env.SENDGRID_API_KEY);
const msg = { to: 'recipient@example.com', from: 'sender@example.com', subject: 'लेन-देन संबंधी ईमेल', text: 'ईमेल का टेक्स्ट', html: '<strong>HTML सामग्री</strong>', attachments: [ { content: 'base64encodedcontent', filename: 'invoice.pdf', type: 'application/pdf', disposition: 'attachment' } ]};
sgMail.send(msg) .then(() => console.log('ईमेल भेजा गया')) .catch(console.error);डायनामिक टेम्पलेट का उपयोग
const msg = { to: 'user@example.com', from: 'noreply@mysite.com', templateId: 'd-xxxxxxxxxxxxxxxx', dynamicTemplateData: { username: 'इवान', orderLink: 'https://mysite.com/order/123' }};