Nodemailer

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

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

ابدأ الدورة
```html

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

Nodemailer هي الوحدة الأكثر شيوعًا لإرسال رسائل البريد الإلكتروني من تطبيقات Node.js. توفر واجهة برمجة تطبيقات بسيطة ومرنة للعمل مع خدمات البريد المختلفة (SMTP، Gmail، Outlook، SendGrid وغيرها). تدعم المكتبة قوالب HTML، المرفقات، التدفقات، بالإضافة إلى المصادقة الآمنة عبر OAuth2.

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

  • إرسال رسائل المعاملات (تأكيد التسجيل، استعادة كلمة المرور).
  • إرسال الإشعارات والحملات التسويقية.
  • التكامل مع نماذج الاتصال في الموقع.
  • الإرسال التلقائي للتقارير والسجلات.

التثبيت

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

npm install nodemailer

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

  • النقل (Transport) — إعداد خادم SMTP أو استخدام وسائل النقل المدمجة (Gmail، Mailgun، SendGrid).
  • تنسيق الرسالة — دعم HTML، النص، المرفقات (ملفات، صور، PDF).
  • التدفقات (Streams) — إمكانية إرسال ملفات كبيرة دون تحميلها في الذاكرة.
  • OAuth2 — مصادقة آمنة لـ Gmail ومزودي الخدمة الآخرين.
  • تجمع الاتصالات (Connection Pool) — تحسين الأداء عند الإرسال الجماعي.

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

const nodemailer = require('nodemailer');

// إعداد النقل (باستخدام Gmail)
const transporter = nodemailer.createTransport({
service: 'gmail',
auth: {
user: 'your-email@gmail.com',
pass: 'your-password' // أو استخدم App Password
}
});

// معلمات الرسالة
const mailOptions = {
from: 'your-email@gmail.com',
to: 'recipient@example.com',
subject: 'مرحبًا من Nodemailer!',
html: '<h1>هذه رسالة اختبارية</h1><p>تم إرسالها عبر Node.js.</p>',
attachments: [{
filename: 'document.pdf',
path: './files/document.pdf'
}]
};

// الإرسال
transporter.sendMail(mailOptions, (error, info) => {
if (error) {
return console.log('خطأ:', error);
}
console.log('تم إرسال البريد:', info.response);
});

متى نستخدم Nodemailer؟

المكتبة مناسبة لأي مشروع على Node.js يتطلب إرسال البريد الإلكتروني: من المدونات الصغيرة إلى الأنظمة المؤسسية. يتكامل Nodemailer بسهولة مع الأطر (Express، Koa) والخدمات السحابية. إذا كنت بحاجة إلى إرسال رسائل بمرفقات، أو تنسيق HTML، أو عبر OAuth2 — فهذا هو الخيار الأفضل.

ملاحظة: للإنتاج، يُوصى باستخدام خدمات متخصصة (SendGrid، Amazon SES) أو مرحلات SMTP لتجنب الحظر. يدعم Nodemailer جميع المزودين المشهورين.

```

توصيات