首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在邮件侦听器2中读取邮件文本?

如何在邮件侦听器2中读取邮件文本?
EN

Stack Overflow用户
提问于 2017-06-14 16:44:51
回答 1查看 1.5K关注 0票数 0

conf.js

代码语言:javascript
复制
var MailListener = require("mail-listener2");
        var mailListener = new MailListener({

            username: "*****@office365.com",
            password: "******",
            host: "outlook.office365.com",
            port: 993, // imap port
            tls: true,
            fetchUnreadOnStart: true,
            tlsOptions: {rejectUnauthorized: false},
            mailbox: "INBOX",
            searchFilter: "UNSEEN",
            markSeen: true
        });

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

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

        (function () {
            var count = 0;
            mailListener.on("mail", function (mail, seqno, attributes) {
                var mailuid = attributes.uid,
                    toMailbox = 'Inbox',
                    i = ++count;
                if (i > 1) {
                    mailListener.stop(); // start listening
                    return;
                }
                console.log('email parsed', {
                    i: i,
                    subject: mail.subject,
                    from: mail.from,
                    text:mail.text,
                    seqno: seqno,
                    uid: attributes.uid,
                    attributes: attributes
                });
                expect(mail.subject).toEqual("FW: Secure One-Time-Password for Account Login");

                var pattern = new RegExp(/Please use (\w+)/g);
                var regCode = pattern.exec(mail.text)[1];
                console.log(regCode);

                console.log('attempting to mark msg read/seen');
                mailListener.imap.addFlags(mailuid, '\\Seen', function (err) {
                    if (err) {
                        console.log('error marking message read/SEEN');
                        return;
                    }

                    //console.log('moving ' + (seqno || '?') + ' to ' + toMailbox);
                    //mailListener.imap.move(mailuid, toMailbox, function (err) {
                        if (err) {
                            console.log('error moving message');
                            return;
                        }
                        console.log('moved ' + (seqno || '?'), mail.subject);
                    });


                });
            });
        })

        ();
        mailListener.start(); // start listening

        setTimeout(function () {
            mailListener.stop(); // start listening
        }, 60 * 1000);

我正在阅读所有的细节,除了文本和文本是html表格格式。

而不是文本,我得到了未定义的message.If所需,我也将添加html代码。

如果我从办公室365将相同的邮件转发给gmail,并从gmail读取邮件,我就能够获得文本。

错误:

代码语言:javascript
复制
 subject: 'test mail',
  from: [ { address: 'otp@gmail.com', name: 'gmail.com' } ],
  body: undefined,
  seqno: 2,
  uid: 18,
  attributes: 
   { date: 2017-06-14T16:22:06.000Z,
     flags: [ '\\Seen' ],
     uid: 18,
     modseq: '3914',
     'x-gm-labels': [],
     'x-gm-msgid': '1570197813730673685',
     'x-gm-thrid': '1570197813730673685' } }
[21:56:13] E/launcher - Cannot read property '1' of null
[21:56:13] E/launcher - TypeError: Cannot read property '1' of null
EN

回答 1

Stack Overflow用户

发布于 2018-02-16 16:24:29

我知道这是一个老问题,但我也面临着同样的问题,而且我使用的是几乎同函数

我想得到电子邮件的内容与链接和电子邮件是HTML。所以:mail.text在这种情况下不起作用,也不会起作用。

解决方案真的很简单,而且它对我很有用:mail.html

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44550409

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档