Получать сообщения с начала использования IMAP в узле

Я использую пакет mail-listener npm, чтобы получить все входящие сообщения с определенной даты.

Вот мой код для получения входящих сообщений,

'listener':function(credit,userid = this.userId,date = (new Date()).toString()){
        if(credit.port === "143" || credit.port === "993") {
            let mailListener2 = new MailListener({
                username: credit.user,
                password: credit.password,
                host: credit.host,
                port: credit.port, // imap port
                tls: (credit.port === "993"),
                connTimeout: 10000, // Default by node-imap
                authTimeout: 5000, // Default by node-imap,
                debug: null, // Or your custom function with only one incoming argument. Default: null
                tlsOptions: {rejectUnauthorized: false},
                mailbox: "INBOX", // mailbox to monitor
                searchFilter: [["SINCE", date]],
                markSeen: false, // all fetched email willbe marked as seen and not fetched next time
                fetchUnreadOnStart: true, // use it only if you want to get all unread email on lib start. Default is `false`,
                //mailParserOptions: {streamAttachments: true}, // options to be passed to mailParser lib.
                attachments: false, // download attachments as they are encountered to the project directory
                attachmentOptions: {directory: "/data/attachments/"} // specify a download directory for attachments
            });

            mailListener2.on("server:connected", Meteor.bindEnvironment(function () {
                console.log("imapConnected");
            }));

            mailListener2.on("server:disconnected", Meteor.bindEnvironment(function () {
                console.log("imapDisconnected");
            }));

            mailListener2.on("error", Meteor.bindEnvironment(function (err) {
                console.log("error listener", err);
            }));
            mailListener2.on("mail", Meteor.bindEnvironment(function (mail) {
                console.log("receive message");
            }));

            mailListener2.start();
        }else if(credit.port === "587" || credit.port === "465"){
            if not imap ....
        }
        return true;
    },

Я хотел бы позволить своему пользователю просто выбрать опцию, если начать с начала или в определенную дату. Поэтому моя проблема в том, что я не знаю, как получить все входящие сообщения с самого начала. Как я могу это сделать?

Нужно ли также использовать SINCE?

1 ответ

-Если вы хотите получать все входящие сообщения, вы можете просто поставить параметр следующим образом: searchFilter: ['UNSEEN'].

-Если вы хотите получать все сообщения с определенной даты, вы можете поставить опцию так (используя момент lib): searchFilter: ['UNSEEN', ['SINCE', момент (DATE_USER).format('ll')]]],

Другие вопросы по тегам