Nodemailer: إرسال البريد الإلكتروني باستخدام JavaScript (Node.js)
Nodemailer هي الوحدة الأكثر شيوعًا لإرسال رسائل البريد الإلكتروني من تطبيقات Node.js. توفر واجهة برمجة تطبيقات بسيطة ومرنة للعمل مع خوادم SMTP، كما تدعم قوالب HTML والمرفقات والبث المباشر والعديد من وسائل النقل (SMTP، Sendmail، Amazon SES وغيرها).
لماذا تحتاج Nodemailer؟
في تطبيقات الويب، غالبًا ما يكون من الضروري إرسال رسائل البريد الإلكتروني: تأكيدات التسجيل، إعادة تعيين كلمة المرور، الإشعارات، النشرات البريدية. يتيح لك Nodemailer القيام بذلك دون تبعيات إضافية، مع دعم OAuth2 و SSL/TLS والترميزات. يعمل بشكل غير متزامن ولا يحجب Event Loop.
التثبيت
قم بتثبيت الوحدة عبر npm:
npm install nodemailerقد يتطلب العمل مع Gmail أو Yandex.Mail إعدادات إضافية (كلمة مرور التطبيق أو OAuth2).
الوظائف الرئيسية
- الإرسال عبر SMTP، Sendmail، AWS SES، Mailgun، SendGrid
- دعم رسائل HTML والنصوص
- المرفقات (ملفات، صور، Buffer، Stream)
- مصادقة OAuth2 (Gmail، Outlook)
- تجميع الاتصالات للإرسال الجماعي
- القوالب (دمج Handlebars، EJS)
مثال على كود JavaScript (Node.js)
مثال بسيط لإرسال بريد إلكتروني عبر Gmail SMTP:
const nodemailer = require('nodemailer');
const transporter = nodemailer.createTransport({
service: 'gmail',
auth: {
user: 'your-email@gmail.com',
pass: 'your-app-password'
}
});
const mailOptions = {
from: 'your-email@gmail.com',
to: 'recipient@example.com',
subject: 'مرحبًا من Node.js',
html: '<h1>رسالة اختبار</h1><p>تم إرسالها عبر Nodemailer</p>'
};
transporter.sendMail(mailOptions, (error, info) => {
if (error) {
console.log('خطأ:', error);
} else {
console.log('تم إرسال البريد الإلكتروني:', info.response);
}
});متى تستخدم
Nodemailer مناسب لأي مشاريع Node.js التي تحتاج إلى إرسال البريد الإلكتروني: من البرامج النصية البسيطة إلى تطبيقات المؤسسات. إنه مستقر، موثق جيدًا، ومدعوم من قبل آلاف المطورين. إذا كنت بحاجة إلى إرسال جماعي (newsletter) — فمن الأفضل استخدام خدمات متخصصة (SendGrid، Mailchimp) عبر واجهة برمجة التطبيقات الخاصة بها، ولكن بالنسبة للبريد الإلكتروني المعاملاتي (transactional email)، فإن Nodemailer هو الخيار المثالي.