دليل لاستخدام 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 مثبتًا. لأننا نتبع جدول دعم المدى الطويل لـ Node.js (LTS)، ستحتاج إلى تشغيل الإصدار 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 مثبتًا. لأننا نتبع جدول دعم المدى الطويل لـ Node.js (LTS)، ستحتاج إلى تشغيل الإصدار 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 مثبتًا. لأننا نتبع جدول دعم المدى الطويل لـ Node.js (LTS)، ستحتاج إلى تشغيل الإصدار 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('رائع! لقد أرسلت للتو أول بريد إلكتروني لك!') console.log(data) }) .catch(err => { console.log('من المؤسف! حدث خطأ ما') console.log(err) })

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

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

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

مكافأة: إرسال البريد الإلكتروني باستخدام 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>مرحبا بالعالم</p>' } }).then(console.log)

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

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

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

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

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

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

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

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

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

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

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

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

R

وصول

G

نمو

م

إدارة

A

أتمتة

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

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