जावास्क्रिप्ट (Node.js) पर ईमेल भेजना: पूर्ण गाइड
\n\nआधुनिक वेब डेवलपमेंट में, किसी भी गंभीर एप्लिकेशन के लिए प्रोग्रामेटिक रूप से ईमेल भेजने की क्षमता एक महत्वपूर्ण कार्य है। चाहे वह रजिस्ट्रेशन पुष्टिकरण हो, पासवर्ड रीसेट, सूचनाएं या मार्केटिंग न्यूज़लेटर — Node.js मेल फंक्शनलिटी को एकीकृत करने के लिए कई शक्तिशाली समाधान प्रदान करता है। इस लेख में, हम तीन सबसे लोकप्रिय दृष्टिकोणों पर विस्तार से चर्चा करेंगे: बिल्ट-इन लाइब्रेरी nodemailer, क्लाउड सेवा SendGrid, और लचीला API Mailgun।
ईमेल भेजने के लिए अलग लाइब्रेरी की आवश्यकता क्यों?
\nNode.js में SMTP प्रोटोकॉल या मेल सेवाओं के REST API के साथ काम करने के लिए बिल्ट-इन सुविधाएं नहीं हैं। इसलिए डेवलपर्स विशेष लाइब्रेरीज़ का उपयोग करते हैं, जो निम्नलिखित कार्य संभालती हैं:
\n- \n
- सही MIME संदेश बनाना (HTML, अटैचमेंट, इनलाइन इमेज सहित); \n
- नेटवर्क त्रुटियों पर कतार और पुनः प्रयास प्रबंधन; \n
- क्रेडेंशियल्स का सुरक्षित भंडारण और ट्रांसमिशन; \n
- लोकप्रिय ईमेल प्रदाताओं (Gmail, Yandex, Mail.ru, कॉर्पोरेट सर्वर) के लिए समर्थन। \n
1. Nodemailer — सार्वभौमिक SMTP क्लाइंट
\nNodemailer Node.js में ईमेल भेजने के लिए डी-फैक्टो मानक है। यह क्लासिक SMTP और OAuth2 के साथ एकीकरण दोनों का समर्थन करता है। यह लाइब्रेरी बिना किसी अतिरिक्त निर्भरता के काम करती है और किसी भी SMTP सर्वर के माध्यम से ईमेल भेजने की अनुमति देती है।
\n\nस्थापना
\nnpm install nodemailer\n\nGmail SMTP के माध्यम से बुनियादी उदाहरण
\nconst nodemailer = require('nodemailer');\n\nconst transporter = nodemailer.createTransport({\n host: 'smtp.gmail.com',\n port: 587,\n secure: false, // 465 के लिए true, बाकी के लिए false\n auth: {\n user: 'your-email@gmail.com',\n pass: 'your-app-password' // मुख्य पासवर्ड नहीं, ऐप पासवर्ड का उपयोग करें!\n }\n});\n\nconst mailOptions = {\n from: '"Sender Name" <your-email@gmail.com>',\n to: 'recipient@example.com',\n subject: 'Node.js से नमस्ते',\n text: 'यह एक सरल टेक्स्ट ईमेल है।',\n html: '<b>यह HTML में बोल्ड टेक्स्ट है</b>'\n};\n\ntransporter.sendMail(mailOptions, (error, info) => {\n if (error) {\n return console.log('त्रुटि:', error);\n }\n console.log('ईमेल भेजा गया: %s', info.messageId);\n});\n\n\nअटैचमेंट के साथ काम करना
\nmailOptions.attachments = [\n { // डिस्क पर फ़ाइल\n filename: 'document.pdf',\n path: '/path/to/document.pdf'\n },\n { // स्ट्रिंग के रूप में सामग्री\n filename: 'notes.txt',\n content: 'मौके पर बनाई गई टेक्स्ट फ़ाइल'\n }\n];\n\n\n2. SendGrid — ट्रांजेक्शनल ईमेल के लिए क्लाउड सेवा
\nSendGrid (अब Twilio का हिस्सा) एक शक्तिशाली REST API प्रदान करता है और उच्च डिलीवरेबिलिटी सुनिश्चित करता है। लाइब्रेरी @sendgrid/mail एकीकरण को सरल बनाती है। यह उन प्रोजेक्ट्स के लिए उपयुक्त है जहां ओपन, क्लिक और अनसब्सक्राइब एनालिटिक्स महत्वपूर्ण हैं।
स्थापना
\nnpm install @sendgrid/mail\n\nभेजने का उदाहरण
\nconst sgMail = require('@sendgrid/mail');\nsgMail.setApiKey(process.env.SENDGRID_API_KEY);\n\nconst msg = {\n to: 'recipient@example.com',\n from: 'sender@yourdomain.com', // डोमेन SendGrid में सत्यापित होना चाहिए\n subject: 'सेवा से सूचना',\n text: 'ईमेल का टेक्स्ट संस्करण',\n html: '<h1>नमस्ते!</h1><p>यह ईमेल SendGrid के माध्यम से भेजा गया है।</p>',\n};\n\nsgMail.send(msg)\n .then(() => console.log('ईमेल सफलतापूर्वक भेजा गया'))\n .catch((error) => console.error(error.toString()));\n\n\nडायनामिक टेम्पलेट के साथ भेजना
\nconst msg = {\n to: 'user@example.com',\n from: 'test@example.com',\n templateId: 'd-xxxxxxxxxxxxxxxxxxxx', // SendGrid से टेम्पलेट ID\n dynamicTemplateData: {\n