Nodemailer

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

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

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

Nodemailer: إرسال البريد الإلكتروني باستخدام TypeScript

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

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

في تطوير الويب الحديث، يلزم إرسال البريد الإلكتروني من أجل:

  • تأكيد التسجيل (التحقق)
  • استعادة كلمة المرور
  • الإشعارات والنشرات البريدية
  • التنبيهات النظامية

تعمل Nodemailer على تبسيط هذه العملية من خلال توفير واجهة برمجة تطبيقات (API) موحدة لأي خدمات بريد إلكتروني.

التثبيت

npm install nodemailernpm install -D @types/nodemailer

بالنسبة لـ TypeScript، تأكد من تثبيت الحزمة التي تحتوي على الأنواع.

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

  • نقل SMTP — الإرسال عبر أي خادم SMTP (Gmail, Mail.ru, Yandex, AWS SES).
  • HTML والنص — دعم كل من النص العادي ورسائل HTML.
  • المرفقات — الملفات والصور و Buffer والتدفقات.
  • القوالب — التكامل مع handlebars و pug وغيرها.
  • التدفقات — إرسال الملفات الكبيرة دون تحميلها في الذاكرة.
  • تجمع الاتصالات — تحسين الأداء عند الإرسال الجماعي.

مثال على كود TypeScript

import nodemailer from 'nodemailer';

interface MailOptions { to: string; subject: string; text?: string; html?: string;}

async function sendEmail(options: MailOptions): Promise<void> { // إنشاء وسيلة النقل (مثال لـ Gmail) const transporter = nodemailer.createTransport({ service: 'gmail', auth: { user: 'your-email@gmail.com', pass: 'your-app-password' } });

// إعدادات الرسالة const mailData = { from: 'your-email@gmail.com', to: options.to, subject: options.subject, text: options.text || '', html: options.html || undefined };

// الإرسال const info = await transporter.sendMail(mailData); console.log('تم إرسال البريد الإلكتروني:', info.messageId);}

// الاستخدامsendEmail({ to: 'user@example.com', subject: 'مرحبًا من TypeScript!', html: '<h1>أهلاً بك</h1><p>هذه رسالة اختبارية.</p>'});

متى تستخدم Nodemailer

المكتبة مناسبة لـ:

  • أي مشاريع على Node.js/TypeScript تحتاج إلى إرسال البريد الإلكتروني.
  • النماذج الأولية و MVP — إعداد سريع عبر Gmail.
  • أنظمة الإنتاج — باستخدام خدمات المعاملات (SendGrid, Mailgun).
  • الخدمات المصغرة و serverless (Lambda, Cloud Functions).

لا يُنصح باستخدام Nodemailer للحملات الجماعية غير المرغوب فيها — فهناك مزودو خدمات بريد إلكتروني (ESP) متخصصون لذلك.

الخلاصة

Nodemailer هي مكتبة ناضجة ومستقرة وموثقة جيدًا. بفضل أنواع TypeScript، تحصل على الإكمال التلقائي والتحقق من الأخطاء في مرحلة الترجمة. إنه الخيار الأمثل لإرسال البريد الإلكتروني في نظام JavaScript/TypeScript البيئي.

```

توصيات