دليل لاستخدام SparkPost مع Node.js

Bird

01‏/09‏/2017

البريد الإلكتروني

1 min read

دليل لاستخدام SparkPost مع Node.js

النقاط الرئيسية

    • تقدم SparkPost العديد من الطرق لإرسال البريد الإلكتروني من Node.js — مكالمات API المباشرة، نقل Nodemailer، وnotif.me للتسليم متعدد القنوات.

    • قم بتخزين مفاتيح API في المتغيرات البيئية، ولا تقم أبدًا بتدوينها بشكل صريح. تقوم SparkPost بالكشف تلقائيًا عن SPARKPOST_API_KEY.

    • تمنحك واجهة برمجة التطبيقات Transmissions مرونة قوية: النماذج، بيانات الاستبدال، المرفقات، وتوسيم الحملات.

    • يمكن لمستخدمي Nodemailer التبديل فورًا إلى SparkPost مع النقل الرسمي — بدون إعادة كتابة كبيرة للكود.

    • يُوفر notif.me تسليم متعدد القنوات (البريد الإلكتروني، SMS، التنبيهات) مع استراتيجيات تدارك، مما يجعله مثاليًا لأنظمة الإشعار القوية.

    • يتناسب Node.js بطبيعته مع واجهات برمجة التطبيقات السحابية الحديثة للبريد الإلكتروني وتدفقات العمل الخدمية، مما يجعل من السهل تضمين قدرات البريد الإلكتروني مباشرة داخل التطبيق الخاص بك.

أبرز الأسئلة والأجوبة

  • ما هي أسرع طريقة لبدء إرسال رسائل البريد الإلكتروني باستخدام SparkPost في Node.js؟

    قم بتثبيت حزمة sparkpost، ثم قم بتهيئة العميل بمفتاح API (يفضل عبر متغيرات البيئة)، واستدعِ طريقة transmissions.send() مع المستلمين + المحتوى.

  • هل أحتاج إلى تخزين مفتاح SparkPost API الخاص بي في الكود؟

    لا — ولا يجب عليك ذلك. استخدم متغيرات البيئة. يقرأ العميل تلقائيًا SPARKPOST_API_KEY.

  • هل يمكنني إرسال رسائل البريد الإلكتروني باستخدام القوالب بدلاً من HTML المضمّن؟

    نعم. يدعم واجهة برمجة التطبيقات Transmissions القوالب المخزنة وبيانات الاستبدال وقوائم المستلمين والمرفقات ونسخ كربونية / نسخ غير ظاهرة والمزيد.

  • ماذا لو كنت استخدم Nodemailer بالفعل؟

    أنت محمي — يتم شحن SparkPost مع وسيلة نقل رسمية من Nodemailer. ما عليك سوى تكوينه بمفتاح API الخاص بك واستخدام Nodemailer كما هو معتاد.

  • هل يمكن لـ SparkPost العمل مع أنظمة الرسائل متعددة القنوات؟

    نعم. تتيح المكتبات مثل notifme-sdk إرسال البريد الإلكتروني وSMS والدفع وwebpush باستخدام منطق النسخ الاحتياطي، وتشمل مزود SparkPost.

  • هل Node.js مناسب لسير العمل غير الخادمي للبريد الإلكتروني؟

    بالتأكيد. إنه يتوافق بشكل جيد مع Cloud Functions وLambdas وأي بيئة بدون خوادم باستخدام SparkPost’s API لإرسال الرسائل الإلكترونية المدفوعة بالأحداث.

  • من الذي يجب أن يستخدم Transmissions API مقابل Nodemailer أو notif.me؟

    • استخدم Transmissions API عندما تريد التحكم الكامل والأداء العالي.

    • استخدم Nodemailer إذا كان مشروعك يستخدمه بالفعل وتريد دمجًا سريعًا.

    • استخدم notif.me للرسائل متعددة القنوات أو استراتيجيات التسليم البديلة.

  • ما هي أفضل ممارسة عند إرسال رسائل البريد الإلكتروني من Node؟

    عامل مفتاح الواجهة البرمجية الخاص بك على أنه حساس — استخدم متغيرات البيئة فقط، ولا تدرجه أبدًا في التعليمات البرمجية.

بصفتي مطورًا مدافعًا لـ SparkPost، أكتب الكثير من التطبيقات النموذجية. يرجع خلفيتي إلى التطوير الأمامي بشكل رئيسي، ولذلك فإن أقوى لغتي هي JavaScript. بفضل Node.js، أصبحت مطورًا خلفيًا جيدًا أيضًا. هل يعني هذا أنني مطور ذو تكدس كامل الآن؟

مقدمة في Node.js

بصفتي مدافع مطور لشركة SparkPost، أكتب الكثير من تطبيقات العينات. خلفيتي في الغالب في تطوير الواجهة الأمامية، ولذلك فإن أقوى لغة عندي هي JavaScript. بفضل Node.js، أنا مطور خلفية جيد أيضًا. وبالحديث عن تطبيقات العينات، فإن Node.js تعمل أيضًا بشكل رائع لبناء الوظائف الخالية من الخوادم التي تتكامل مع Flow Builder - مثل دليل دمج Google Cloud Functions و Vision API الخاص بنا. هل يعني هذا أنني أصبح مطور متكامل الآن؟ على أي حال، كان من المهم بالنسبة لي أن يكون لدينا مكتبة عميل رائعة لـ SparkPost لـ Node.js. لذا، قمت بالغوص مباشرة وأصبحت مساهمًا (حتى قبل أن يتم توظيفي).

اسمح لي بمساعدتك في بدء إرسال رسائل البريد الإلكتروني باستخدام SparkPost في مشروع Node.js الخاص بك. قبل التعمق في تفاصيل Node.js، قد ترغب في فهم أساسيات واجهات برمجة التطبيقات للبريد الإلكتروني في البنية التحتية السحابية وكيفية ملاءمتها لتطوير التطبيقات الحديثة.

بصفتي مدافع مطور لشركة SparkPost، أكتب الكثير من تطبيقات العينات. خلفيتي في الغالب في تطوير الواجهة الأمامية، ولذلك فإن أقوى لغة عندي هي JavaScript. بفضل Node.js، أنا مطور خلفية جيد أيضًا. وبالحديث عن تطبيقات العينات، فإن Node.js تعمل أيضًا بشكل رائع لبناء الوظائف الخالية من الخوادم التي تتكامل مع Flow Builder - مثل دليل دمج Google Cloud Functions و Vision API الخاص بنا. هل يعني هذا أنني أصبح مطور متكامل الآن؟ على أي حال، كان من المهم بالنسبة لي أن يكون لدينا مكتبة عميل رائعة لـ SparkPost لـ Node.js. لذا، قمت بالغوص مباشرة وأصبحت مساهمًا (حتى قبل أن يتم توظيفي).

اسمح لي بمساعدتك في بدء إرسال رسائل البريد الإلكتروني باستخدام SparkPost في مشروع Node.js الخاص بك. قبل التعمق في تفاصيل Node.js، قد ترغب في فهم أساسيات واجهات برمجة التطبيقات للبريد الإلكتروني في البنية التحتية السحابية وكيفية ملاءمتها لتطوير التطبيقات الحديثة.

بصفتي مدافع مطور لشركة SparkPost، أكتب الكثير من تطبيقات العينات. خلفيتي في الغالب في تطوير الواجهة الأمامية، ولذلك فإن أقوى لغة عندي هي JavaScript. بفضل Node.js، أنا مطور خلفية جيد أيضًا. وبالحديث عن تطبيقات العينات، فإن Node.js تعمل أيضًا بشكل رائع لبناء الوظائف الخالية من الخوادم التي تتكامل مع Flow Builder - مثل دليل دمج Google Cloud Functions و Vision API الخاص بنا. هل يعني هذا أنني أصبح مطور متكامل الآن؟ على أي حال، كان من المهم بالنسبة لي أن يكون لدينا مكتبة عميل رائعة لـ SparkPost لـ Node.js. لذا، قمت بالغوص مباشرة وأصبحت مساهمًا (حتى قبل أن يتم توظيفي).

اسمح لي بمساعدتك في بدء إرسال رسائل البريد الإلكتروني باستخدام SparkPost في مشروع Node.js الخاص بك. قبل التعمق في تفاصيل Node.js، قد ترغب في فهم أساسيات واجهات برمجة التطبيقات للبريد الإلكتروني في البنية التحتية السحابية وكيفية ملاءمتها لتطوير التطبيقات الحديثة.

التثبيت والإعداد

سأفترض أنك قمت بتثبيت Node.js. لأننا نتبع جدول الدعم طويل الأمد (LTS) لـNode.js، ستحتاج إلى تشغيل الإصدار 4 أو أعلى. يمكنك معرفة الإصدار الذي تستخدمه باستخدام الأمر `node –version` في نافذة الطرفية الخاصة بك.

لننشئ مشروع npm جديد. إذا كان لديك واحد بالفعل، يمكنك تخطي هذا الجزء.

> mkdir sparkpost-test > cd sparkpost-test > npm init --yes

سيؤدي هذا إلى إنشاء مشروع جديد وقبول جميع الإعدادات الافتراضية. يمكنك بدلاً من ذلك تشغيل `npm init` والإجابة على جميع المطالبات.

الآن يمكننا تثبيت node-sparkpost:

> npm install sparkpost --save

بمجرد التثبيت، يمكنك استيراد وإنشاء نسخة من فئة SparkPost:

const SparkPost = require('sparkpost') const client = new SparkPost('YOUR API KEY')

من الجيد تجنب وضع مفتاح API الخاص بك في الكود. نوصي بشدة بتخزينه خارج الكود، لذلك قمنا بإعداد مكتبة العميل لاكتشاف متغير البيئة SPARKPOST_API_KEY .

سأفترض أنك قمت بتثبيت Node.js. لأننا نتبع جدول الدعم طويل الأمد (LTS) لـNode.js، ستحتاج إلى تشغيل الإصدار 4 أو أعلى. يمكنك معرفة الإصدار الذي تستخدمه باستخدام الأمر `node –version` في نافذة الطرفية الخاصة بك.

لننشئ مشروع npm جديد. إذا كان لديك واحد بالفعل، يمكنك تخطي هذا الجزء.

> mkdir sparkpost-test > cd sparkpost-test > npm init --yes

سيؤدي هذا إلى إنشاء مشروع جديد وقبول جميع الإعدادات الافتراضية. يمكنك بدلاً من ذلك تشغيل `npm init` والإجابة على جميع المطالبات.

الآن يمكننا تثبيت node-sparkpost:

> npm install sparkpost --save

بمجرد التثبيت، يمكنك استيراد وإنشاء نسخة من فئة SparkPost:

const SparkPost = require('sparkpost') const client = new SparkPost('YOUR API KEY')

من الجيد تجنب وضع مفتاح API الخاص بك في الكود. نوصي بشدة بتخزينه خارج الكود، لذلك قمنا بإعداد مكتبة العميل لاكتشاف متغير البيئة SPARKPOST_API_KEY .

سأفترض أنك قمت بتثبيت Node.js. لأننا نتبع جدول الدعم طويل الأمد (LTS) لـNode.js، ستحتاج إلى تشغيل الإصدار 4 أو أعلى. يمكنك معرفة الإصدار الذي تستخدمه باستخدام الأمر `node –version` في نافذة الطرفية الخاصة بك.

لننشئ مشروع npm جديد. إذا كان لديك واحد بالفعل، يمكنك تخطي هذا الجزء.

> mkdir sparkpost-test > cd sparkpost-test > npm init --yes

سيؤدي هذا إلى إنشاء مشروع جديد وقبول جميع الإعدادات الافتراضية. يمكنك بدلاً من ذلك تشغيل `npm init` والإجابة على جميع المطالبات.

الآن يمكننا تثبيت node-sparkpost:

> npm install sparkpost --save

بمجرد التثبيت، يمكنك استيراد وإنشاء نسخة من فئة SparkPost:

const SparkPost = require('sparkpost') const client = new SparkPost('YOUR API KEY')

من الجيد تجنب وضع مفتاح API الخاص بك في الكود. نوصي بشدة بتخزينه خارج الكود، لذلك قمنا بإعداد مكتبة العميل لاكتشاف متغير البيئة SPARKPOST_API_KEY .

إرسال بريد إلكتروني

الآن بعد أن أصبح لديك مثال SparkPost، أنت جاهز للإرسال. هناك بعض الخيارات المتاحة للإرسال، لكن دعنا نبدأ بمثال بسيط. إليك كيفية إرسال بريد إلكتروني إلى مستلم واحد، مع تحديد محتوى مضمن:

client.transmissions.send({
  content: {
    from: 'test@your-sending-domain.com',
    subject: 'Hello from node-sparkpost',
    html: '<p>Hello world</p>'
  },
  recipients: [
    { address: 'someone@somedomain.com' }
  ]
})
.then(data => {
  console.log('Woohoo! You just sent your first mailing!')
  console.log(data)
})
.catch(err => {
  console.log('Whoops! Something went wrong')
  console.log(err)
})

ملاحظة: هذا المثال يستخدم Promises، لكن لا تقلق. نحن أيضًا ندعم وظائف الارتجاع.

بالنسبة لتطبيقات المؤسسات التي تتطلب إدارة شاملة للبريد الإلكتروني، قد يحتاج المطورون أيضًا إلى النظر في بناء أنظمة أرشفة البريد الإلكتروني للتعامل مع متطلبات التخزين والامتثال.

هناك المزيد من الخيارات المتاحة مع عمليات النقل، بما في ذلك تحديد القوالب المخزنة أو قوائم المستلمين، cc و bcc، إضافة مرفقات، تحديد حملة، استخدام بيانات التعديل، والكثير غير ذلك. اطلع على الأمثلة، والوثائق لمورد Transmissions، ووثائق API لعمليات الإرسال للمزيد من المعلومات.

الآن بعد أن أصبح لديك مثال SparkPost، أنت جاهز للإرسال. هناك بعض الخيارات المتاحة للإرسال، لكن دعنا نبدأ بمثال بسيط. إليك كيفية إرسال بريد إلكتروني إلى مستلم واحد، مع تحديد محتوى مضمن:

client.transmissions.send({
  content: {
    from: 'test@your-sending-domain.com',
    subject: 'Hello from node-sparkpost',
    html: '<p>Hello world</p>'
  },
  recipients: [
    { address: 'someone@somedomain.com' }
  ]
})
.then(data => {
  console.log('Woohoo! You just sent your first mailing!')
  console.log(data)
})
.catch(err => {
  console.log('Whoops! Something went wrong')
  console.log(err)
})

ملاحظة: هذا المثال يستخدم Promises، لكن لا تقلق. نحن أيضًا ندعم وظائف الارتجاع.

بالنسبة لتطبيقات المؤسسات التي تتطلب إدارة شاملة للبريد الإلكتروني، قد يحتاج المطورون أيضًا إلى النظر في بناء أنظمة أرشفة البريد الإلكتروني للتعامل مع متطلبات التخزين والامتثال.

هناك المزيد من الخيارات المتاحة مع عمليات النقل، بما في ذلك تحديد القوالب المخزنة أو قوائم المستلمين، cc و bcc، إضافة مرفقات، تحديد حملة، استخدام بيانات التعديل، والكثير غير ذلك. اطلع على الأمثلة، والوثائق لمورد Transmissions، ووثائق API لعمليات الإرسال للمزيد من المعلومات.

الآن بعد أن أصبح لديك مثال SparkPost، أنت جاهز للإرسال. هناك بعض الخيارات المتاحة للإرسال، لكن دعنا نبدأ بمثال بسيط. إليك كيفية إرسال بريد إلكتروني إلى مستلم واحد، مع تحديد محتوى مضمن:

client.transmissions.send({
  content: {
    from: 'test@your-sending-domain.com',
    subject: 'Hello from node-sparkpost',
    html: '<p>Hello world</p>'
  },
  recipients: [
    { address: 'someone@somedomain.com' }
  ]
})
.then(data => {
  console.log('Woohoo! You just sent your first mailing!')
  console.log(data)
})
.catch(err => {
  console.log('Whoops! Something went wrong')
  console.log(err)
})

ملاحظة: هذا المثال يستخدم Promises، لكن لا تقلق. نحن أيضًا ندعم وظائف الارتجاع.

بالنسبة لتطبيقات المؤسسات التي تتطلب إدارة شاملة للبريد الإلكتروني، قد يحتاج المطورون أيضًا إلى النظر في بناء أنظمة أرشفة البريد الإلكتروني للتعامل مع متطلبات التخزين والامتثال.

هناك المزيد من الخيارات المتاحة مع عمليات النقل، بما في ذلك تحديد القوالب المخزنة أو قوائم المستلمين، cc و bcc، إضافة مرفقات، تحديد حملة، استخدام بيانات التعديل، والكثير غير ذلك. اطلع على الأمثلة، والوثائق لمورد Transmissions، ووثائق API لعمليات الإرسال للمزيد من المعلومات.

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

Nodemailer هي مكتبة شهيرة لـ Node.js تجعل إرسال البريد الإلكتروني "سهلًا مثل الكعكة." لأولئك الذين يختارون استخدام هذه المكتبة، أنشأنا SparkPost transport for Nodemailer. ستحتاج إلى تثبيت حزم  nodemailer و nodemailer-sparkpost-transport في مشروعك.

> npm install nodemailer nodemailer-sparkpost-transport --save

الآن يمكنك إنشاء نسخة من النقل لـ nodemailer:

const nodemailer = require('nodemailer') 
const sparkPostTransport = require('nodemailer-sparkpost-transport') 
const transporter = nodemailer.createTransport(sparkPostTransport({ 
  'sparkPostApiKey': process.env.SPARKPOST_API_KEY 
}))

لاحظ كيف أقرأ مفتاح الـ API من متغير البيئة. لا يزال من الأفضل عدم وضع ذلك مباشرة في الكود الخاص بك.

هناك عدة خيارات يمكن تمريرها إلى SparkPost transport، مثل معرف الحملة وما إذا كانت الرسالة معاملاتية. ألقِ نظرة على README.md لجميع الخيارات.

إليك كيفية إرسال نفس الرسالة المذكورة أعلاه باستخدام Nodemailer:

transporter.sendMail(
  {
    from: 'test@your-sending-domain.com',
    to: 'someone@somedomain.com',
    subject: 'Hello from nodemailer-sparkpost-transport',
    html: '<p>Hello world</p>'
  },
  (err, info) => {
    if (err) {
      console.error(err);
    } else {
      console.log(info);
    }
  }
);

Nodemailer هي مكتبة شهيرة لـ Node.js تجعل إرسال البريد الإلكتروني "سهلًا مثل الكعكة." لأولئك الذين يختارون استخدام هذه المكتبة، أنشأنا SparkPost transport for Nodemailer. ستحتاج إلى تثبيت حزم  nodemailer و nodemailer-sparkpost-transport في مشروعك.

> npm install nodemailer nodemailer-sparkpost-transport --save

الآن يمكنك إنشاء نسخة من النقل لـ nodemailer:

const nodemailer = require('nodemailer') 
const sparkPostTransport = require('nodemailer-sparkpost-transport') 
const transporter = nodemailer.createTransport(sparkPostTransport({ 
  'sparkPostApiKey': process.env.SPARKPOST_API_KEY 
}))

لاحظ كيف أقرأ مفتاح الـ API من متغير البيئة. لا يزال من الأفضل عدم وضع ذلك مباشرة في الكود الخاص بك.

هناك عدة خيارات يمكن تمريرها إلى SparkPost transport، مثل معرف الحملة وما إذا كانت الرسالة معاملاتية. ألقِ نظرة على README.md لجميع الخيارات.

إليك كيفية إرسال نفس الرسالة المذكورة أعلاه باستخدام Nodemailer:

transporter.sendMail(
  {
    from: 'test@your-sending-domain.com',
    to: 'someone@somedomain.com',
    subject: 'Hello from nodemailer-sparkpost-transport',
    html: '<p>Hello world</p>'
  },
  (err, info) => {
    if (err) {
      console.error(err);
    } else {
      console.log(info);
    }
  }
);

Nodemailer هي مكتبة شهيرة لـ Node.js تجعل إرسال البريد الإلكتروني "سهلًا مثل الكعكة." لأولئك الذين يختارون استخدام هذه المكتبة، أنشأنا SparkPost transport for Nodemailer. ستحتاج إلى تثبيت حزم  nodemailer و nodemailer-sparkpost-transport في مشروعك.

> npm install nodemailer nodemailer-sparkpost-transport --save

الآن يمكنك إنشاء نسخة من النقل لـ nodemailer:

const nodemailer = require('nodemailer') 
const sparkPostTransport = require('nodemailer-sparkpost-transport') 
const transporter = nodemailer.createTransport(sparkPostTransport({ 
  'sparkPostApiKey': process.env.SPARKPOST_API_KEY 
}))

لاحظ كيف أقرأ مفتاح الـ API من متغير البيئة. لا يزال من الأفضل عدم وضع ذلك مباشرة في الكود الخاص بك.

هناك عدة خيارات يمكن تمريرها إلى SparkPost transport، مثل معرف الحملة وما إذا كانت الرسالة معاملاتية. ألقِ نظرة على README.md لجميع الخيارات.

إليك كيفية إرسال نفس الرسالة المذكورة أعلاه باستخدام Nodemailer:

transporter.sendMail(
  {
    from: 'test@your-sending-domain.com',
    to: 'someone@somedomain.com',
    subject: 'Hello from nodemailer-sparkpost-transport',
    html: '<p>Hello world</p>'
  },
  (err, info) => {
    if (err) {
      console.error(err);
    } else {
      console.log(info);
    }
  }
);

مكافأة مزدوجة: إرسال بريد إلكتروني باستخدام notif.me

نعلم جميعًا أن البريد الإلكتروني هو ملك التواصل ولكن في بعض الأحيان تريد أن تكون قادرًا على الوصول إلى الأشخاص عبر قنوات متعددة. notif.me هي مكتبة Node.js لإرسال جميع أنواع الرسائل التجارية. سواء كنت ترغب في إرسال بريد إلكتروني أو رسالة نصية أو إشعارات دفع، يمكنك القيام بذلك بسهولة. كما يحتوي على استراتيجيات مبنية للدوران واختيار المزودين المتعددين. لقد عملنا مؤخرًا مع المبدعين لبناء مزود SparkPost. ستحتاج إلى تثبيت حزمة `notifme-sdk` في مشروعك.

> npm install notifme-sdk --save

يمكنك الآن إنشاء مثيل notifme مع مزود SparkPost:

const NotifmeSdk = require('notifme-sdk').default;
const notifmeSdk = new NotifmeSdk({
  channels: {
    email: {
      providers: [
        {
          type: 'sparkpost',
          apiKey: process.env.SPARKPOST_API_KEY
        }
      ]
    }
  }
});

مرة أخرى، نحن نجلب مفتاح API من متغير بيئة. لقد ذكرنا ذلك ثلاث مرات — إنه مهم جدًا. 🙂

الآن دعونا نكرر هذا المثال نفسه، هذه المرة باستخدام notif.me:

notifmeSdk.send({
  email: {
    from: 'test@your-sending-domain.com',
    to: 'someone@somedomain.com',
    subject: 'Hello from the SparkPost notif.me provider',
    html: '<p>Hello world</p>'
  }
})
.then(console.log)
.catch(console.error);

إنه سهل الاستخدام حقًا وأوصي بالاطلاع على الميزات الأخرى.

نعلم جميعًا أن البريد الإلكتروني هو ملك التواصل ولكن في بعض الأحيان تريد أن تكون قادرًا على الوصول إلى الأشخاص عبر قنوات متعددة. notif.me هي مكتبة Node.js لإرسال جميع أنواع الرسائل التجارية. سواء كنت ترغب في إرسال بريد إلكتروني أو رسالة نصية أو إشعارات دفع، يمكنك القيام بذلك بسهولة. كما يحتوي على استراتيجيات مبنية للدوران واختيار المزودين المتعددين. لقد عملنا مؤخرًا مع المبدعين لبناء مزود SparkPost. ستحتاج إلى تثبيت حزمة `notifme-sdk` في مشروعك.

> npm install notifme-sdk --save

يمكنك الآن إنشاء مثيل notifme مع مزود SparkPost:

const NotifmeSdk = require('notifme-sdk').default;
const notifmeSdk = new NotifmeSdk({
  channels: {
    email: {
      providers: [
        {
          type: 'sparkpost',
          apiKey: process.env.SPARKPOST_API_KEY
        }
      ]
    }
  }
});

مرة أخرى، نحن نجلب مفتاح API من متغير بيئة. لقد ذكرنا ذلك ثلاث مرات — إنه مهم جدًا. 🙂

الآن دعونا نكرر هذا المثال نفسه، هذه المرة باستخدام notif.me:

notifmeSdk.send({
  email: {
    from: 'test@your-sending-domain.com',
    to: 'someone@somedomain.com',
    subject: 'Hello from the SparkPost notif.me provider',
    html: '<p>Hello world</p>'
  }
})
.then(console.log)
.catch(console.error);

إنه سهل الاستخدام حقًا وأوصي بالاطلاع على الميزات الأخرى.

نعلم جميعًا أن البريد الإلكتروني هو ملك التواصل ولكن في بعض الأحيان تريد أن تكون قادرًا على الوصول إلى الأشخاص عبر قنوات متعددة. notif.me هي مكتبة Node.js لإرسال جميع أنواع الرسائل التجارية. سواء كنت ترغب في إرسال بريد إلكتروني أو رسالة نصية أو إشعارات دفع، يمكنك القيام بذلك بسهولة. كما يحتوي على استراتيجيات مبنية للدوران واختيار المزودين المتعددين. لقد عملنا مؤخرًا مع المبدعين لبناء مزود SparkPost. ستحتاج إلى تثبيت حزمة `notifme-sdk` في مشروعك.

> npm install notifme-sdk --save

يمكنك الآن إنشاء مثيل notifme مع مزود SparkPost:

const NotifmeSdk = require('notifme-sdk').default;
const notifmeSdk = new NotifmeSdk({
  channels: {
    email: {
      providers: [
        {
          type: 'sparkpost',
          apiKey: process.env.SPARKPOST_API_KEY
        }
      ]
    }
  }
});

مرة أخرى، نحن نجلب مفتاح API من متغير بيئة. لقد ذكرنا ذلك ثلاث مرات — إنه مهم جدًا. 🙂

الآن دعونا نكرر هذا المثال نفسه، هذه المرة باستخدام notif.me:

notifmeSdk.send({
  email: {
    from: 'test@your-sending-domain.com',
    to: 'someone@somedomain.com',
    subject: 'Hello from the SparkPost notif.me provider',
    html: '<p>Hello world</p>'
  }
})
.then(console.log)
.catch(console.error);

إنه سهل الاستخدام حقًا وأوصي بالاطلاع على الميزات الأخرى.

لا توجد طريقة خاطئة لاستخدام Node

عندما يتعلق الأمر بإرسال البريد الإلكتروني باستخدام Node.js، لديك العديد من الخيارات. لقد عملنا بجد لجعل الأمر سهلاً قدر الإمكان.

عندما يتعلق الأمر بإرسال البريد الإلكتروني باستخدام Node.js، لديك العديد من الخيارات. لقد عملنا بجد لجعل الأمر سهلاً قدر الإمكان.

عندما يتعلق الأمر بإرسال البريد الإلكتروني باستخدام Node.js، لديك العديد من الخيارات. لقد عملنا بجد لجعل الأمر سهلاً قدر الإمكان.

أخبار أخرى

اقرأ المزيد من هذه الفئة

A person is standing at a desk while typing on a laptop.

المنصة الأصلية للذكاء الاصطناعي التي تتوسع مع عملك.

A person is standing at a desk while typing on a laptop.

المنصة الأصلية للذكاء الاصطناعي التي تتوسع مع عملك.

A person is standing at a desk while typing on a laptop.

المنصة الأصلية للذكاء الاصطناعي التي تتوسع مع عملك.