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

Bird

01‏/09‏/2017

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

1 min read

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

Bird

01‏/09‏/2017

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

1 min read

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

بصفتي مطورًا مدافعًا لـ 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، قد ترغب في فهم أساسيات واجهات برمجة التطبيقات للبريد الإلكتروني في البنية التحتية السحابية وكيفية ملاءمتها لتطوير التطبيقات الحديثة.

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

أنا أفترض أنك قد قمت بتثبيت 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 لعمليات الإرسال للمزيد من المعلومات.

مكافأة: إرسال البريد الإلكتروني باستخدام 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);
    }
  }
);

مكافأة مزدوجة: إرسال بريد إلكتروني باستخدام 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);

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

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

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

دعنا نوصلك بخبير من Bird.
رؤية القوة الكاملة لـ Bird في 30 دقيقة.

بتقديمك طلبًا، فإنك توافق على أن تقوم Bird بالاتصال بك بشأن منتجاتنا وخدماتنا.

يمكنك إلغاء الاشتراك في أي وقت. انظر بيان الخصوصية الخاص بـ Bird للتفاصيل حول معالجة البيانات.

دعنا نوصلك بخبير من Bird.
رؤية القوة الكاملة لـ Bird في 30 دقيقة.

بتقديمك طلبًا، فإنك توافق على أن تقوم Bird بالاتصال بك بشأن منتجاتنا وخدماتنا.

يمكنك إلغاء الاشتراك في أي وقت. انظر بيان الخصوصية الخاص بـ Bird للتفاصيل حول معالجة البيانات.

دعنا نوصلك بخبير من Bird.
رؤية القوة الكاملة لـ Bird في 30 دقيقة.

بتقديمك طلبًا، فإنك توافق على أن تقوم Bird بالاتصال بك بشأن منتجاتنا وخدماتنا.

يمكنك إلغاء الاشتراك في أي وقت. انظر بيان الخصوصية الخاص بـ Bird للتفاصيل حول معالجة البيانات.

R

وصول

G

نمو

م

إدارة

A

أتمتة

النشرة الإخبارية

ابقَ على اطلاع مع Bird من خلال التحديثات الأسبوعية إلى بريدك الوارد.