با این API دوستانه و حداقل تنظیمات شروع به ارسال ایمیل خود کنید.
در دنیای دیجیتال پر سرعت امروز، بازاریابی ایمیلی ابزاری ضروری برای کسبوکارها است تا به طور موثر به مشتریان خود دسترسی پیدا کنند. با این حال، پیادهسازی یک سیستم ایمیل میتواند یک فرآیند پیچیده و زمانبر باشد، بهویژه برای توسعهدهندگانی که تازه وارد این کار شدهاند.
خوشبختانه، با Sendinblue، ارسال ایمیل کار بسیار آسانی است. به عنوان یک پلتفرم نرم افزار به عنوان سرویس (SaaS)، Sendinblue تمام نیازهای شما را به عنوان یک صاحب کسب و کار یا توسعه دهنده فراهم می کند تا ایمیل های خود را به راحتی به کاربران خود منتقل کنید.
Sendinblue چیست؟
SendinBlue یک پلت فرم نرم افزار به عنوان سرویس (SaaS) است که یک راه حل بازاریابی ایمیلی با کاربری آسان برای مشاغل کوچک، متوسط و بزرگ ارائه می دهد. SendinBlue بستری را فراهم می کند که به شرکت ها کمک می کند تا روابط خود را با مشتریان خود، عمدتاً از طریق خدمات ایمیل و پیام کوتاه، توسعه دهند.
SendinBlue همچنین APIها و ابزارهایی را ارائه می دهد که به توسعه دهندگان اجازه می دهد ایمیل ها و پیامک ها را خودکار و ارسال کنند. این ابزارها برای ادغام با Node.js و سایر زبان های برنامه نویسی برای ایجاد کمپین های ایمیل و پیامک سفارشی شده ساده هستند.
با SendinBlue، کسبوکارها میتوانند فرآیندهای ارتباطی را سادهتر کنند و کارآمدتر به کاربران یا مشتریان دسترسی پیدا کنند.
نحوه دریافت اعتبارنامه SendinBlue API
برای استفاده از APIها و SDK های SendinBlue، اولین پیش نیاز یک حساب کاربری SendinBlue است. SendinBlue یک فرآیند ثبت نام آسان را فراهم می کند و می توانید یک حساب کاربری در صفحه ثبت نام SendinBlue ایجاد کنید.
یک حساب کاربری ایجاد کنید، جزئیات مورد نیاز را وارد کنید و یک طرح مناسب را در فرآیند ورود انتخاب کنید. سپس SendinBlue شما را به داشبورد خود هدایت می کند، جایی که می توانید اعتبار API خود را دریافت کنید.
برای دریافت اعتبار API خود، مراحل زیر را دنبال کنید.
- روی نام سازمان خود در گوشه سمت راست بالای داشبورد کلیک کنید.
- SMTP & API را از منوی کشویی انتخاب کنید.
- به تب API Keys بروید و روی دکمه Generate a new API key کلیک کنید.
- در پنجره ظاهر شده، کلید خود را یک نام بگذارید، رشته تولید شده را کپی کنید، سپس آن را به صورت ایمن ذخیره کنید.
این رشته کلید API و اعتبار هویت شماست که باید با دقت ذخیره کنید تا به دست افراد اشتباه نیفتد.
چگونه یک سیستم ارسال ایمیل در Node.js بسازیم
Node.js یک بسته ایمیل داخلی مانند Golang ندارد. برای ارسال ایمیل، به یک بسته خارجی مانند nodemailer یا بسته ای که SendinBlue ارائه می دهد نیاز دارید.
همچنین به دانش کاری Node.js و محیط توسعه Node.js در دستگاه خود نیاز دارید.
این برنامه ساده Node/Express را با یک نقطه پایانی /waitlist در نظر بگیرید:
// server.js
const express = require('express');
// create server
const server = express();
const port = 3333;
server.listen(port, () => {
console.log(`server listening on port ${port}`);
})
// create waitlist endpoint
server.use('/waitlist', async (req, res) => {
try {
const user = req.body;
console.log(`${user.fullname} joined the waitlist`);
res.status(200).json({ message: 'Joined Waitlist successfully' })
} catch (error) {
console.error(error)
res.status(500).json({ message: 'An error occurred' })
}
})
می توانید از SendinBlue برای ارسال ایمیل خوش آمدگویی به کاربری که به لیست انتظار می پیوندد استفاده کنید.
اولین قدم این است که SDK را با استفاده از npm یا هر بسته منیجر دیگری نصب کنید. npm install sib-api-v3-sdk یا yarn add sib-api-v3-sdk را در پوشه پروژه خود اجرا کنید تا آن را به وابستگی های پروژه اضافه کنید.
پس از نصب، فقط با چند خط کد دیگر آماده ارسال ایمیل هستید. در یک پروژه بزرگتر، احتمالاً می خواهید عملکرد ایمیل را در یک فایل جداگانه جدا کنید. با این حال، برای این نمایش، میتوانید از همان فایل server.js استفاده کنید.
بسته sib-api-v3-sdk را وارد کنید و مشتری SendinBlue را مانند زیر راه اندازی کنید:
const SibApi = require('sib-api-v3-sdk');
// instantiate new SendinBlue API client
const SibClient = SibApi.ApiClient.instance;
// Authentication
SibClient.authentications['api-key'].apiKey = process.env.SIB_API_KEY
|| 'YOUR_API_KEY_HERE';
سپس، تنظیماتی را تنظیم کنید و یک تابع برای ارسال ایمیل های خوش آمد گویی ایجاد کنید:
const transactionEmailApi = new SibApiSDK.TransactionalEmailsApi();
let smtpMailData = new SibApiSDK.SendSmtpEmail();
const sender = {
email: 'sendinbluemail@example.com', // your email address
name: 'Example Sender',
};
const SendWaitlistEmail = async (userData) => {
}
متغیرtransactionEmailApi یک شی را ذخیره میکند که به شما امکان میدهد ایمیلهای تراکنش ارسال کنید (همانطور که در SendinBlue نامیده میشوند). متغیر smtpMailData داده های ایمیل تراکنش را که برای ارسال هر ایمیل نیاز دارید ذخیره می کند: گیرنده، محتوا و غیره.
اکنون به بدنه تابع SendWaitlistEmail بروید. کد زیر نشان می دهد که بدنه تابع چگونه باید باشد.
const SendWaitlistEmail = async (userData) => {
try {
smtpMailData.sender = sender;
smtpMailData.to = [{
email: userData.email,
name: userData.fullname
}];
smtpMailData.subject = 'You are on the waitlist!';
smtpMailData.params = {
'name': userData.fullname,
'twitter': '@makeuseof'
};
smtpMailData.htmlContent = "<html><body><p>Hello {{ params.name }}, "
+ "welcome to makeuseof.com waitlist. We'll notify you "
+ "when we launch. Kindly follow us on Twitter "
+ "{{ params.twitter }}.</p></body></html>";
// send email
await transactionEmailApi.sendTransacEmail(smtpMailData)
.then((data) => {
console.log(data) // log the email id
})
.catch((error) => {
console.error(error)
throw new Error(error) // handle errors
})
} catch (error) {
console.log('An error occured...')
console.error(error)
throw new Error(error) // handle errors
}
}
بیشتر این کد ویژگی های کلیدی شی smtpMailData را پر می کند. به ترتیب، اینها عبارتند از:
- فرستنده: یک شی حاوی دو ویژگی: ایمیل و نام. کد بالا از یک آدرس ایمیل ساختگی استفاده می کند، اما شما باید از یک آدرس ایمیل واقعی و کارآمد برای برنامه های تولید استفاده کنید.
- به: این مجموعه ای از گیرندگان ایمیل است. عناصر این آرایه اشیایی هستند که با داده ها (ایمیل و نام) گیرنده ایمیل تعریف شده اند. شما می توانید حداکثر 50 گیرنده در هر پیام داشته باشید. از نظر فنی، امکان ارسال پیام خود به بیش از 50 نفر به طور همزمان وجود دارد، اما انجام این کار خطر تلقی عوامل ایمیل به عنوان هرزنامه را افزایش می دهد.
- موضوع: موضوع ایمیلی است که باید ارسال کنید.
- params: این داده های اضافی است که می توانید در قسمت های مختلف ایمیل خود (به طور عمده موضوع و محتوا) استفاده کنید. میتوانید با قرار دادن آنها در پرانتزهای دوتایی (یعنی {{ params.name }}) از مقادیر این شیء params استفاده کنید.
- htmlContent: این ویژگی بدنه پیام را تعریف می کند. این کمک می کند تا متن پیام ایمیل را تعریف کنید، که می توانید با استفاده از HTML قالب بندی کنید. همچنین دارای یک جایگزین متن است که متن پیام را ساده نگه می دارد.
ایمیل میتواند ویژگیهای بیشتری داشته باشد، و میتوانید همه آنها را در اسناد توسعهدهنده SendinBlue کشف کنید.
در نهایت، روش sendTransacEmail معاملهEmailApi ایمیل را ارسال می کند و شناسه ایمیل را برمی گرداند.
پس از پیاده سازی تابع SendWaitlistEmail، می توانید آن را در نقطه پایانی لیست انتظار فراخوانی کنید. نقطه پایانی لیست انتظار بالا اکنون به شکل زیر خواهد بود:
server.use('/waitlist', async (req, res) => {
try {
const user = req.body;
console.log(`${user.fullname} joined the waitlist`);
// call email sender function
await SendWaitlistEmail(user)
res.status(200).json({ message: 'Joined Waitlist successfully' })
} catch (error) {
console.error(error)
res.status(500).json({ message: 'An internal server error occurred' })
}
})
می توانید برنامه خود را شروع کنید و نقطه پایانی لیست انتظار خود را در یک کلاینت REST API یا از قسمت جلوی برنامه خود آزمایش کنید. در اینجا یک نمونه درخواست تست از Postman است.
در اینجا ایمیل دریافتی به نظر می رسد. توجه داشته باشید که مقادیر از شی params وجود دارد.
اگر ترمینال خود را بررسی کنید، پیام Id را نیز در کنسول چاپ میکنید. شما می توانید این مقدار را در یک پایگاه داده یا گزارش برای شناسایی یک ایمیل خاص ذخیره کنید.
همچنین میتوانید نکاتی را برای جلوگیری از ارسال ایمیلها به اسپم گیرندگان بررسی کنید.
اگرچه این سیستم ایمیل به درستی کار می کند، تماس مستقیم نقطه پایانی با عملکرد فرستنده ایمیل کارآمدترین رویکرد نیست. این می تواند باعث شود برنامه شما در هنگام ارسال ایمیل، بی مورد منتظر بماند. برای جلوگیری از این امر، باید با اجرای یک صف کار برای مدیریت بار کاری ایمیل، فرآیند را بهینه کنید.
ارسال ایمیل در Node.js هرگز آسانتر نبوده است
درک اینکه میتوانید سرویسی برای ارسال ایمیل در Node.js به راحتی بسازید، خوشحال کننده است.
فراتر از محدوده این راهنما، کارهای بسیار بیشتری می توانید با SendinBlue انجام دهید. میتوانید نسخههای مختلف ایمیل را بهطور همزمان برای گیرندگان مختلف ارسال کنید، از الگوهای ایمیل ارائهشده توسط SendinBlue استفاده کنید، وبقلابها را برای شناسایی اقدامات انجامشده توسط گیرندگان ایمیل خود پیکربندی کنید، و تجزیه و تحلیلهای زمان واقعی را مشاهده کنید.
می توانید این ویژگی ها را با بررسی آنها در پورتال توسعه دهنده و پیاده سازی آنها در برنامه های Node.js خود کشف کنید.