nano-mail
— це модуль для відправки електронних листів за допомогою Nodemailer, зручного для Node.js з використанням nano-format
.
Цей пакет дозволяє створювати, форматувати та відправляти електронні листи з вкладеннями, а також визначати одержувачів через поля to
, cc
та bcc
. Він підтримує шаблонізацію HTML-листів та заміну плейсхолдерів у листах, а також відправлення листів за допомогою Nodemailer.
npm install nano-mail
import { Address, Attachment, Email, Target, mailer, mail } from 'nano-mail';
// Створення одержувачів
const target = Target.from({
to: 'ivan@example.com',
cc: 'petr@example.com',
bcc: 'admin@example.com'
});
// Створення листа
const email = new Email({
subject: 'Ваш рахунок',
html: '<h1>Дякуємо за вашу покупку!</h1>',
from: 'Магазин <info@shop.com>',
target: target
});
// Додавання вкладення
const attachment = new Attachment({
filename: 'invoice.pdf',
path: '/path/to/invoice.pdf'
});
email.attach(attachment);
// Налаштування транспорту для Nodemailer
const transportConfig = {
host: 'smtp.example.com',
port: 587,
secure: false, // true для 465, false для інших портів
auth: {
user: 'username',
pass: 'password'
}
};
// Відправка листа
const data = {
name: 'Іван',
purchase: 'товар 123'
};
mail(email, data, { mailer: mailer(transportConfig) })
.then(info => {
console.log('Лист відправлено:', info);
})
.catch(err => {
console.error('Помилка під час відправлення листа:', err);
});
Address
представляє електронну адресу.
-
Конструктор:
new Address(name: string, address: string)
-
Методи:
-
toString()
: Повертає адресу у форматі "Name ". -
toObject()
: Повертає об'єкт з полямиname
таaddress
. -
static from(source: string | object): Address | null
: Створює екземпляр з рядка або об'єкта.
-
Attachment
представляє вкладення до листа.
-
Конструктор:
new Attachment(opts: object)
-
Методи:
-
formatForNodemailer()
: Форматує вкладення для Nodemailer.
-
Email
представляє електронний лист.
-
Конструктор:
new Email(opts: object)
-
Методи:
-
attach(attachment: Attachment)
: Додає вкладення до листа. -
formatForNodemailer()
: Форматує лист для Nodemailer.
-
Target
представляє одержувачів листа.
-
Конструктор:
new Target()
-
Методи:
-
add(type: 'to' | 'cc' | 'bcc', address: string | Address | string[] | Address[])
: Додає адресу до відповідного поля. -
formatForNodemailer()
: Форматує одержувачів для Nodemailer. -
static from(source: string | object): Target | null
: Створює екземпляр з рядка або об'єкта.
-
mailer
створює поштовий транспорт для Nodemailer.
-
Функція:
mailer(transportConfig: object): object
mail
відповідає за відправку листа.
-
Функція:
mail(email: Email, data: object, opts?: object): Promise<object | boolean>
Цей проект ліцензований за умовами ліцензії ISC.