Відкритий Nodd.js API для читання та надсилання електронних листів
Розширений відкритий API управління електронною поштою Node.js дозволяє розробникам створювати, читати, налаштовувати та надсилати електронні листи з вкладеннями та користувацьким заголовком у додатках Node.js.
Що таке Nodemailer API?
Відкрийте для себе Nodemailer — необхідну бібліотеку для надсилання електронної пошти розробникам Node.js. Цей інструмент дає змогу розробникам Node.js створювати та надсилати електронні листи всього лише кількома рядками коду безпосередньо з їхніх застосунків. Його відкритий код та потужний API роблять його популярним вибором для розробників, які прагнуть безшовно інтегрувати функціональність електронної пошти. Розробники можуть широко налаштовувати вміст листа без зовнішньої допомоги. Від простих текстових листів до складних HTML‑шаблонів (транзакційних листів, сповіщень або розсилок) з вкладеннями — бібліотека надає інструменти, необхідні для створення професійних та привабливих листів. Для підвищеної безпеки вона підтримує автентифікацію OAuth2. Цей метод особливо корисний при надсиланні листів із сервісів, що підтримують OAuth2, таких як Gmail.
Nodemailer підтримує різноманітні методи транспорту, включаючи SMTP, OAuth2 та навіть прямий транспорт. Така гнучкість забезпечує розробникам можливість обрати найбільш підходящий метод для їх конкретного випадку використання. Він надає широкі можливості налаштування та дозволяє розробникам встановлювати власні заголовки, змінювати кодування, додавати вкладення, вбудовані зображення та коригувати інші параметри для задоволення специфічних вимог. Як проєкт з відкритим кодом, API виграє від живої спільноти учасників та користувачів. Ця активна спільнота забезпечує регулярні оновлення, постійне вдосконалення та багатство спільних знань і ресурсів. Nodemailer виділяється як потужне, гнучке та надійне рішення для інтеграції електронної пошти в додатках Node.js. Його відкритий характер і сильна підтримка спільноти роблять його інструментом вибору для розробників, які прагнуть підвищити свої додатки за допомогою надійних можливостей надсилання листів.
Початок роботи з Nodemailer
Рекомендований спосіб встановлення Nodemailer — використання NPM. Будь ласка, скористайтеся наступною командою для безпроблемної інсталяції.
Встановити Nodemailer через npm
npm install nodemailer
Надсилання електронного листа з Node.js
Відкритий API Nodemailer для електронної пошти дозволяє розробникам програмного забезпечення створювати та надсилати електронні повідомлення з додатка Node.js без будь‑яких зовнішніх залежностей. API підтримує різні механізми транспорту, дозволяючи розробникам обирати найкращий спосіб надсилання листів. Найпоширеніші методи транспорту включають SMTP Transport, підтримку OAuth2 або Direct Transport. Він підтримує додавання вкладень до листів, вбудовування зображень як вкладень для HTML‑вмісту, надсилання листів кільком користувачам тощо. Ось простий приклад, який показує, як розробники можуть використовувати SMTP transport для надсилання електронного повідомлення з додатка Node.js.
Як надіслати повідомлення електронної пошти через SMTP-транспорт з Node.js застосунків?
const nodemailer = require('nodemailer');
// Configure the SMTP transport
let transporter = nodemailer.createTransport({
host: 'smtp.example.com',
port: 587,
secure: false, // true for 465, false for other ports
auth: {
user: 'your-email@example.com', // your SMTP username
pass: 'your-email-password' // your SMTP password
}
});
// Define the email options
let mailOptions = {
from: 'your-email@example.com', // sender address
to: 'recipient@example.com', // list of receivers
subject: 'Hello from Nodemailer', // Subject line
text: 'This is a test email sent using Nodemailer', // plain text body
html: 'This is a test email sent using Nodemailer' // html body
};
// Send the email
transporter.sendMail(mailOptions, (error, info) => {
if (error) {
return console.log('Error: ', error);
}
console.log('Message sent: %s', info.messageId);
console.log('Preview URL: %s', nodemailer.getTestMessageUrl(info));
});
Надсилання листів з багатим вмістом з додатків Node.js
API Nodemailer дозволяє створювати багатий вміст електронних листів, підтримуючи як простий текст, так і формати HTML у додатках Node.js. Це дає змогу розробникам програмного забезпечення створювати візуально привабливі листи, які можуть містити стилі, зображення та навіть інтерактивний контент. Використовуючи API з шаблонними двигунами, такими як Handlebars або EJS, розробники можуть створювати динамічні, даними керовані шаблони листів. Це ідеально підходить для надсилання персоналізованих повідомлень, де вміст може адаптуватися на основі даних користувача. API підтримує вкладення, що робить можливим надсилання файлів, таких як PDF, зображення або будь-які інші типи файлів разом з листом.
Користувацькі заголовки та вбудовані зображення
Для розширеного налаштування електронних листів API Nodemailer дозволяє розробникам програмного забезпечення включати користувацькі заголовки та вбудовані зображення у додатках Node.js. Ця функція особливо корисна для брендингу та персоналізації, забезпечуючи відповідність листів зовнішньому вигляду та стилю застосунку. Користувацькі заголовки можна використовувати для встановлення конкретних метаданих листа, а вбудовані зображення роблять лист візуально привабливим, відображаючи зображення безпосередньо в тексті. Нижче наведено всебічний приклад, який демонструє надсилання листа з користувацькими заголовками та вбудованим зображенням.
Як надіслати лист з користувацьким заголовком та вбудованим зображенням через Node.js API?
const nodemailer = require('nodemailer');
const path = require('path');
// Create a transporter object using SMTP transport
let transporter = nodemailer.createTransport({
service: 'gmail',
auth: {
user: 'your-email@gmail.com',
pass: 'your-email-password'
}
});
// Define the email options, including custom headers and an embedded image
let mailOptions = {
from: 'your-email@gmail.com',
to: 'recipient@example.com',
subject: 'Custom Headers and Embedded Images in Nodemailer',
html: `Ласкаво просимо!
Цей лист містить користувацькі заголовки та вбудоване зображення.
`,
headers: {
'X-Custom-Header': 'CustomHeaderValue',
'X-Mailer': 'Nodemailer 6.4.11'
},
attachments: [
{
filename: 'image.jpg',
path: path.join(__dirname, 'path_to_image/image.jpg'),
cid: 'unique@nodemailer.com' // same cid as in the HTML above
}
]
};
// Send the email
transporter.sendMail(mailOptions, (error, info) => {
if (error) {
return console.error('Error sending email:', error);
}
console.log('Email sent successfully:', info.response);
});