nodemailer

مدرب بايثون أونلاين للمبتدئين

تعلم Python بسهولة دون إرهاق نظري. حل مهام عملية مع التحقق التلقائي واكتب الكود مباشرة في المتصفح.

ابدأ الدورة

مكتبة Nodemailer: إرسال البريد الإلكتروني باستخدام JavaScript (Node.js)

Nodemailer هي الوحدة الأكثر شهرة لإرسال رسائل البريد الإلكتروني من تطبيقات Node.js. توفر واجهة برمجة تطبيقات بسيطة ولكنها قوية للعمل مع خدمات البريد المختلفة (SMTP, Gmail, Outlook, SendGrid, Amazon SES وغيرها). تدعم المكتبة قوالب HTML والمرفقات وتدفقات البيانات بالإضافة إلى التشفير (SSL/TLS).

لماذا نحتاج Nodemailer؟

في تطوير الويب الحديث، يعد إرسال البريد الإلكتروني وظيفة أساسية: رسائل التسجيل، إعادة تعيين كلمة المرور، الإشعارات، النشرات البريدية. يحل Nodemailer المشكلات التالية:

  • العمل الشامل مع أي خادم SMTP.
  • دعم رسائل HTML والنصية.
  • الملفات المرفقة (صور، PDF، أرشيفات).
  • نقل البيانات الكبيرة عبر التدفق.
  • التكامل مع الخدمات الشائعة (Gmail, Yandex, Mail.ru).

التثبيت

قم بتثبيت الوحدة عبر npm:

npm install nodemailer

لـ TypeScript بشكل إضافي:

npm install @types/nodemailer

الوظائف الرئيسية

  • createTransport() — إنشاء ناقل للاتصال بخادم البريد.
  • sendMail() — إرسال رسالة مع الإعدادات (من، إلى، الموضوع، المحتوى، المرفقات).
  • verify() — التحقق من الاتصال بالخادم.
  • use() — توصيل الإضافات (مثل القوالب).

مثال على كود Node.js

const nodemailer = require('nodemailer');

// إعداد الناقل (مثال لـ Gmail باستخدام كلمة مرور التطبيق)const transporter = nodemailer.createTransport({ service: 'gmail', auth: { user: 'your-email@gmail.com', pass: 'your-app-password' // ليست كلمة المرور العادية، بل كلمة مرور التطبيق }});

// دالة إرسال البريد الإلكترونيasync function sendEmail() { try { const info = await transporter.sendMail({ from: '"Your Name" <your-email@gmail.com>', to: 'recipient@example.com', subject: 'مرحباً من Node.js!', html: '<h1>رسالة اختبارية</h1><p>تم إرسالها عبر Nodemailer.</p>' }); console.log('تم إرسال البريد: %s', info.messageId); } catch (error) { console.error('خطأ في الإرسال:', error); }}

sendEmail();

متى نستخدم Nodemailer؟

  • التسجيل وتسجيل الدخول — إرسال رسائل تأكيد البريد الإلكتروني.
  • الإشعارات — تنبيهات حول إجراءات المستخدم (طلب، تعليق).
  • النشرات البريدية — الإرسال الجماعي (ولكن للكميات الكبيرة من الأفضل استخدام SendGrid/Mailgun).
  • التصحيح — إرسال الرسائل في البيئة المحلية (عبر Ethereal أو Mailtrap).

هام: للإنتاج، استخدم خوادم SMTP حقيقية (SendGrid, Amazon SES, Mailgun) أو قم بإعداد خادم البريد الخاص بك. Gmail لديه حدود (500 رسالة/يوم) ويتطلب كلمة مرور التطبيق.

Nodemailer هو المعيار الفعلي لإرسال البريد الإلكتروني في Node.js. إنه بسيط وموثوق وله مجتمع كبير.

توصيات