Как прочитать тело письма через JavaScript и IMAP

26 декабря, 2019
1 минута чтения

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)
                });
            });

        });
    });
});

Денис Сергеевич Басковский

Философ, изобретатель и поэт.

Добавить комментарий Отменить ответ

OpenAPI
Предыдущая статья

Генерация OpenAPI документации для RPC из JSDOC

addr in use
Следующая статья

Как исправить ошибку «Error: listen EADDRINUSE: address already in use :::9000»

Exit mobile version