TypeScript पर ईमेल भेजना: सरल से जटिल तक
ईमेल भेजना किसी भी वेब एप्लिकेशन का एक मुख्य कार्य है: उपयोगकर्ता पंजीकरण, पासवर्ड रीसेट, ऑर्डर सूचनाएं, न्यूज़लेटर। TypeScript (और Node.js) इकोसिस्टम में कई शक्तिशाली लाइब्रेरीज़ हैं जो ईमेल भेजने को लचीले ढंग से कॉन्फ़िगर करने की अनुमति देती हैं। इस लेख में हम तीन लोकप्रिय टूल्स पर चर्चा करेंगे: nodemailer, @sendgrid/mail और mailgun.js, TypeScript में कोड उदाहरण दिखाएंगे, SMTP के साथ सुरक्षित कार्य और टेम्पलेटिंग पर चर्चा करेंगे।
1. nodemailer — सार्वभौमिक SMTP क्लाइंट
nodemailer Node.js से ईमेल भेजने के लिए सबसे लोकप्रिय लाइब्रेरी है। यह किसी भी SMTP सर्वर (Gmail, Yandex, Mail.ru, आपका अपना मेल सर्वर) और लोकप्रिय सेवाओं के लिए अंतर्निहित ट्रांसपोर्टर का समर्थन करता है। टाइप्स की उपलब्धता के कारण यह TypeScript के साथ "आउट ऑफ द बॉक्स" काम करता है।
स्थापना
npm install nodemailernpm install @types/nodemailer --save-devGmail SMTP के माध्यम से बुनियादी भेजने का उदाहरण
import nodemailer from 'nodemailer';
interface EmailOptions { to: string; subject: string; text: string; html?: string;}
async function sendEmail(options: EmailOptions): Promise<void> { const transporter = nodemailer.createTransport({ service: 'gmail', auth: { user: process.env.EMAIL_USER, pass: process.env.EMAIL_PASS, }, });
const mailOptions = { from: `"My App" <${process.env.EMAIL_USER}>`, to: options.to, subject: options.subject, text: options.text, html: options.html, };
const info = await transporter.sendMail(mailOptions); console.log('ईमेल भेजा गया:', info.messageId);}
// उपयोगsendEmail({ to: 'user@example.com', subject: 'TypeScript से नमस्ते!', text: 'यह एक परीक्षण ईमेल है।', html: '<h1>नमस्ते!</h1><p>यह <strong>HTML</strong> संस्करण है।</p>',}).catch(console.error);एकाधिक प्राप्तकर्ताओं और अटैचमेंट के साथ कार्य
async function sendBulkWithAttachments(): Promise<void> { const transporter = nodemailer.createTransport({ host: 'smtp.yandex.ru', port: 465, secure: true, auth: { user: process.env.YANDEX_USER, pass: process.env.YANDEX_PASS, }, });
await transporter.sendMail({ from: '"टीम" <no-reply@mydomain.ru>', to: ['user1@example.com', 'user2@example.com'], subject: 'मासिक रिपोर्ट', text: 'अटैचमेंट में रिपोर्ट फ़ाइल है।', attachments: [ { filename: 'report.pdf', path: './docs/report.pdf', }, ], });}2. SendGrid — बड़ी मात्रा के लिए क्लाउड सेवा
SendGrid (Twilio का हिस्सा) ईमेल भेजने के लिए एक पेशेवर प्लेटफ़ॉर्म है। यह API, Node.js/TypeScript के लिए SDK, डिलीवरी एनालिटिक्स और स्पैम सुरक्षा प्रदान करता है। उच्च लोड वाली परियोजनाओं (प्रति दिन हजारों ईमेल) के लिए अनुशंसित।
स्थापना और कॉन्फ़िगरेशन
npm install @sendgrid/mailimport sgMail from '@sendgrid/mail';
sgMail.setApiKey(process.env.SENDGRID_API_KEY!);
interface SendGridOptions { to: string | string[]; subject: string; html: string; from?: string;}
async function sendViaSendGrid(options: SendGridOptions): Promise<void> { const msg = { to: options.to, from: options.from || 'noreply@mydomain.com', subject: options.subject, html: options.html, };
try { await sgMail.send(msg); console.log('SendGrid के माध्यम से ईमेल भेजा गया'); } catch (error) { console.error('SendGrid त्रुटि:', error); throw error; }}3. Mailgun — डेवलपर्स के लिए विकल्प
Mailgun REST API और TypeScript-संगतता के साथ एक और लोकप्रिय सेवा है।