nodemailer

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

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

ابدأ الدورة

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

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

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

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

التثبيت

npm install nodemailernpm install @types/nodemailer --save-dev

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

  • نقل SMTP — الإعداد عبر أي خادم SMTP (Gmail, Yandex, Mail.ru).
  • دعم HTML والنص — يمكن إرسال نص عادي أو قوالب HTML جميلة.
  • المرفقات — ملفات، صور، PDF.
  • النقل التدفقي — إرسال ملفات كبيرة دون تحميلها في الذاكرة.
  • التوصيف — دعم كامل لـ TypeScript (واجهات للخيارات).

مثال على الكود بلغة TypeScript

import nodemailer from 'nodemailer';

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

async function sendEmail(options: MailOptions): Promise<void> { const transporter = nodemailer.createTransport({ host: 'smtp.gmail.com', port: 587, secure: false, auth: { user: 'your-email@gmail.com', pass: 'your-app-password' } });

const info = await transporter.sendMail(options); console.log('Email sent:', info.messageId);}

// الاستخدامsendEmail({ from: 'noreply@example.com', to: 'user@example.com', subject: 'Hello from TypeScript', html: '<h1>Welcome!</h1><p>This is a test email.</p>'});

متى تستخدم nodemailer؟

المكتبة مثالية لتطبيقات الخادم على Node.js/TypeScript، خاصةً مع Express, Next.js أو Nest.js. إذا كنت بحاجة إلى إعداد إرسال البريد الإلكتروني بسرعة دون تكوينات معقدة — فإن nodemailer هو الخيار الأفضل. كما أنها مناسبة للخدمات المصغرة والمهام الخلفية (على سبيل المثال، باستخدام Bull أو Agenda).

ملاحظات هامة

  • بالنسبة لـ Gmail، استخدم كلمة مرور التطبيق (وليس كلمة المرور الرئيسية).
  • بالنسبة للإنتاج، استخدم متغيرات البيئة (على سبيل المثال، process.env.SMTP_PASS).
  • لا تنس معالجة الأخطاء: try/catch إلزامي.

Nodemailer هو المعيار الفعلي لإرسال البريد الإلكتروني في TypeScript. خفيف، موثوق، وذو توثيق ممتاز.

توصيات