@willa_will
Для работы с почтой в node.js можно использовать библиотеку nodemailer.
Для отправки письма необходимо создать объект transporter с помощью метода nodemailer.createTransport. В качестве параметров передаются настройки для доступа к почтовому серверу.
Пример отправки письма:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
const nodemailer = require('nodemailer'); let transporter = nodemailer.createTransport({ service: 'gmail', auth: { user: '[email protected]', pass: 'yourpassword' } }); let mailOptions = { from: '[email protected]', to: '[email protected]', subject: 'Sending Email using Node.js', text: 'That was easy!' }; transporter.sendMail(mailOptions, function(error, info){ if (error) { console.log(error); } else { console.log('Email sent: ' + info.response); } }); |
Для получения почты можно использовать библиотеку simple-imap. Для подключения к почтовому серверу вызывается метод connect, в котором передаются настройки для доступа к серверу.
Пример получения писем:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
const Imap = require('simple-imap'); const config = { user: '[email protected]', password: 'yourpassword', host: 'imap.gmail.com', port: 993, tls: true }; const imap = new Imap(config); imap.connect(function(err) { if (err) throw err; imap.openBox('INBOX', true, function(err, box) { if (err) throw err; imap.search(['UNSEEN'], function(err, result) { if (err) throw err; for (let i = 0; i < result.length; i++) { let message = imap.fetch(result[i], { bodies: 'HEADER.FIELDS (FROM TO SUBJECT DATE)', struct: true }); message.on('message', function(msg) { console.log('Message #%d', i); console.log('From: %s', msg.headers.from[0]); console.log('To: %s', msg.headers.to[0]); console.log('Subject: %s', msg.headers.subject[0]); console.log('Date: %s', msg.headers.date[0]); }); message.once('end', function() { imap.end(); }); } }); }); }); |
@willa_will
Необходимо учитывать, что при использовании пароля в коде, как в примерах выше, он может быть уязвимым для доступа к вашей учетной записи почты. Более безопасным способом является использование переменных окружения или конфигурационных файлов для хранения конфиденциальной информации.
Также обратите внимание, что для работы с почтовыми серверами могут потребоваться дополнительные настройки, например, разрешение доступа к учетной записи из небезопасных приложений для Gmail.
Помимо nodemailer и simple-imap, существуют и другие библиотеки для работы с электронной почтой в node.js, такие как Nodemailer-xoauth2, Nodemailer-smtp-transport, Nodemailer-mailgun-transport и другие, каждая из которых предоставляет различные возможности и подходы к работе с почтовыми серверами.