Cách gửi email trong Node.js bằng API Sendinblue
Trong thế giới kỹ thuật số phát triển nhanh chóng ngày nay, tiếp thị qua email là một công cụ thiết yếu để doanh nghiệp tiếp cận khách hàng một cách hiệu quả. Tuy nhiên, việc triển khai một hệ thống email có thể là một quá trình phức tạp và tốn thời gian, đặc biệt đối với những nhà phát triển mới bắt đầu thực hiện nhiệm vụ này.
May mắn thay, với Sendinblue, gửi email là một nhiệm vụ rất dễ dàng. Là một nền tảng phần mềm dưới dạng dịch vụ (SaaS), Sendinblue cung cấp tất cả những gì bạn cần với tư cách là chủ sở hữu doanh nghiệp hoặc nhà phát triển để gửi email của bạn đến người dùng một cách rất dễ dàng.
Mục Lục
Sendinblue là gì?
SendinBlue là nền tảng phần mềm dưới dạng dịch vụ (SaaS) cung cấp giải pháp tiếp thị qua email dễ sử dụng cho các doanh nghiệp nhỏ, vừa và lớn. SendinBlue cung cấp một nền tảng giúp các công ty phát triển mối quan hệ với khách hàng của họ, chủ yếu thông qua các dịch vụ email và SMS.
SendinBlue cũng cung cấp các API và công cụ cho phép các nhà phát triển tự động hóa và gửi email cũng như SMS. Các công cụ này rất đơn giản để tích hợp với Node.js và các ngôn ngữ lập trình khác để tạo các chiến dịch SMS và email tùy chỉnh.
Với SendinBlue, doanh nghiệp có thể hợp lý hóa các quy trình giao tiếp và tiếp cận người dùng hoặc khách hàng hiệu quả hơn.
Cách nhận thông tin xác thực API SendinBlue
Để sử dụng API và SDK SendinBlue, điều kiện tiên quyết đầu tiên là phải có tài khoản SendinBlue. SendinBlue cung cấp quy trình đăng ký dễ dàng và bạn có thể tạo tài khoản trên trang đăng ký SendinBlue.
Tạo một tài khoản, nhập các chi tiết cần thiết và chọn một gói phù hợp trong quy trình giới thiệu. SendinBlue sau đó sẽ chuyển hướng bạn đến trang tổng quan nơi bạn có thể lấy thông tin đăng nhập API của mình.
Để có được thông tin đăng nhập API của bạn, hãy làm theo các bước bên dưới.
- Nhấp vào tên tổ chức của bạn ở góc trên cùng bên phải của trang tổng quan.
- Lựa chọn SMTP & API từ menu thả xuống.
- Chuyển sang Khóa API tab và nhấp vào Tạo khóa API mới cái nút.
- Trong cửa sổ bật lên xuất hiện, hãy đặt tên cho khóa của bạn, sao chép chuỗi đã tạo, sau đó lưu trữ an toàn.
Chuỗi này là khóa API và thông tin xác thực danh tính của bạn mà bạn nên lưu trữ cẩn thận để không rơi vào tay kẻ xấu.
Cách xây dựng hệ thống gửi email trong Node.js
Node.js không có gói email tích hợp sẵn như Golang. Để gửi email, bạn cần một gói bên ngoài như người gửi thư hoặc cái mà SendinBlue cung cấp.
Bạn cũng sẽ cần có kiến thức làm việc về Node.js và môi trường phát triển Node.js trên máy của mình.
Hãy xem xét ứng dụng Node/Express đơn giản này với một /danh sách chờ điểm cuối:
const express = require('express');
const server = express();
const port = 3333;
server.listen(port, () => {
console.log(`server listening on port ${port}`);
})
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' })
}
})
Bạn có thể sử dụng SendinBlue để gửi email chào mừng tới người dùng tham gia danh sách chờ.
Bước đầu tiên là cài đặt SDK bằng cách sử dụng npm hoặc bất kỳ trình quản lý gói nào khác. Chạy npm cài đặt sib-api-v3-sdk hoặc sợi thêm sib-api-v3-sdk trong thư mục dự án của bạn để thêm nó vào phần phụ thuộc của dự án.
Sau khi cài đặt, bạn đã sẵn sàng bắt đầu gửi email chỉ với một vài dòng mã. Trong một dự án lớn hơn, bạn có thể muốn tách riêng chức năng email trong một tệp riêng biệt. Tuy nhiên, đối với phần trình diễn này, bạn có thể tiếp tục sử dụng máy chủ.js tài liệu.
Nhập khẩu sib-api-v3-sdk gói và thiết lập ứng dụng khách SendinBlue như bên dưới:
const SibApi = require('sib-api-v3-sdk');
const SibClient = SibApi.ApiClient.instance;
SibClient.authentications['api-key'].apiKey = process.env.SIB_API_KEY
|| 'YOUR_API_KEY_HERE';
Tiếp theo, thiết lập một số cấu hình và tạo chức năng gửi email chào mừng:
const transactionEmailApi = new SibApiSDK.TransactionalEmailsApi();let smtpMailData = new SibApiSDK.SendSmtpEmail();
const sender = {
email: 'sendinbluemail@example.com',
name: 'Example Sender',
};
const SendWaitlistEmail = async (userData) => {
}
Các giao dịchEmailApi biến lưu trữ một đối tượng cho phép bạn gửi email giao dịch (như chúng được gọi trên SendinBlue). Các smtpMailData biến sẽ lưu trữ dữ liệu email giao dịch mà bạn sẽ cần gửi từng email: người nhận, nội dung, v.v.
Bây giờ đến cơ thể của Gửi danh sách chờEmail chức năng. Đoạn mã sau cho biết thân hàm sẽ trông như thế nào.
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': '@smartreviewaz'
};
smtpMailData.htmlContent = "<html><body><p>Hello {{ params.name }}, "
+ "welcome to smartreviewaz.com waitlist. We'll notify you "
+ "when we launch. Kindly follow us on Twitter "
+ "{{ params.twitter }}.</p></body></html>";
await transactionEmailApi.sendTransacEmail(smtpMailData)
.then((data) => {
console.log(data)
})
.catch((error) => {
console.error(error)
throw new Error(error)
})
} catch (error) {
console.log('An error occured...')
console.error(error)
throw new Error(error)
}
}
Hầu hết mã này chứa các thuộc tính chính của smtpMailData sự vật. Theo thứ tự, đây là:
- người gửi: Một đối tượng chứa hai thuộc tính: email và tên. Đoạn mã trên sử dụng địa chỉ email giả, nhưng bạn nên sử dụng địa chỉ email thực, đang hoạt động cho các ứng dụng sản xuất.
- ĐẾN: Đây là một mảng của người nhận email. Các phần tử của mảng này là các đối tượng được xác định với dữ liệu (email và tên) của người nhận email. Bạn có thể có tối đa 50 người nhận cho mỗi tin nhắn. Về mặt kỹ thuật, bạn có thể gửi thư của mình tới hơn 50 người cùng một lúc, nhưng làm như vậy sẽ tăng nguy cơ bị các đại lý email coi là thư rác.
- chủ thể: Đây là chủ đề của email để gửi.
- thông số: Đây là dữ liệu bổ sung mà bạn có thể sử dụng trong các phần khác nhau của email (chủ yếu là chủ đề và nội dung). Bạn có thể sử dụng các giá trị từ này thông số đối tượng bằng cách đặt chúng trong dấu ngoặc nhọn kép (tức là {{params.name}}).
- htmlNội dung: Thuộc tính này xác định phần thân của thông điệp. Nó giúp xác định nội dung thư của email mà bạn có thể định dạng bằng HTML. Nó cũng có một sự thay thế, văn bảnnội dunggiữ cho nội dung thư đơn giản.
Email có thể có nhiều thuộc tính hơn và bạn có thể khám phá tất cả chúng trong tài liệu dành cho nhà phát triển của SendinBlue.
cuối cùng gửiTransacEmail phương pháp của giao dịchEmailApi gửi email và trả về ID của email.
đã thực hiện các Gửi danh sách chờEmail chức năng, bạn có thể gọi nó trong điểm cuối danh sách chờ. Điểm cuối danh sách chờ ở trên bây giờ sẽ trông như thế này:
server.use('/waitlist', async (req, res) => {
try {
const user = req.body; console.log(`${user.fullname} joined the waitlist`);
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' })
}
})
Bạn có thể bắt đầu ứng dụng của mình và kiểm tra điểm cuối danh sách chờ trong ứng dụng API REST hoặc từ giao diện người dùng của ứng dụng. Đây là một yêu cầu thử nghiệm ví dụ từ Postman.
Đây là những gì email nhận được trông như thế nào. Lưu ý rằng các giá trị từ thông số đối tượng có mặt.
Nếu bạn kiểm tra thiết bị đầu cuối của mình, bạn cũng sẽ thấy ID tin nhắn được in trong bảng điều khiển. Bạn có thể lưu trữ giá trị này trong cơ sở dữ liệu hoặc nhật ký để xác định một email cụ thể.
Bạn cũng có thể cân nhắc kiểm tra một số mẹo để ngăn email chuyển đến thư rác của người nhận.
Mặc dù hệ thống email này hoạt động chính xác, nhưng để điểm cuối gọi trực tiếp chức năng người gửi email không phải là phương pháp hiệu quả nhất. Nó có thể khiến ứng dụng của bạn chờ đợi một cách không cần thiết trong khi gửi email. Để tránh điều này, bạn nên tối ưu hóa quy trình bằng cách triển khai hàng đợi tác vụ để xử lý khối lượng công việc email.
Gửi email trong Node.js chưa bao giờ dễ dàng hơn thế
Thật hài lòng khi nhận ra rằng bạn có thể xây dựng một dịch vụ gửi email trong Node.js rất dễ dàng.
Ngoài phạm vi của hướng dẫn này, bạn có thể làm được nhiều điều hơn nữa với SendinBlue. Bạn có thể gửi các phiên bản email khác nhau cho những người nhận khác nhau cùng một lúc, sử dụng các mẫu email do SendinBlue cung cấp, định cấu hình webhook để phát hiện các hành động do người nhận email của bạn thực hiện và xem các phân tích theo thời gian thực.
Bạn có thể khám phá các tính năng này bằng cách xem chúng trong cổng thông tin dành cho nhà phát triển và triển khai chúng trong các ứng dụng Node.js của mình.