package.json
Установите два пакета imap-simple и mailparser. Первый необходим для доступа к почтовому ящику посредством IMAP, другой нужен для чтения самого письма.
{
"dependencies": {
"imap-simple": "5.1.0",
"mailparser": "3.3.0"
}
}
Для примера возьмем IMAP от Яндекс.
server.js
const imaps = require('imap-simple');
const simpleParser = require('mailparser').simpleParser;
var config = {
imap: {
user: 'my@email.domain',
password: 'mypassword',
host: 'imap.yandex.ru',
port: 993,
tls: true,
authTimeout: 3000
}
};
imaps.connect(config).then(function (connection) {
return connection.openBox('INBOX').then(function () {
const searchCriteria = ['ALL'];
const fetchOptions = {
bodies: ['HEADER', 'TEXT'],
markSeen: false
};
return connection.search(searchCriteria, fetchOptions).then(function (messages) {
messages.forEach(function (item) {
const idHeader = "Imap-Id: " + item.attributes.uid + "\r\n";
simpleParser(idHeader, (err, mail) => {
console.log(mail)
});
});
});
});
});