2017-06-14 53 views
0

conf.js如何閱讀郵件監聽器2中的郵件文本?

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代碼。

如果我從Office 365將相同的郵件轉發到gmail並從Gmail讀取郵件,我可以獲取文本。

錯誤:

subject: 'test mail', 
    from: [ { address: '[email protected]', 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 
+0

alecxe ......請看這個問題? –

+0

你在哪裏有這個郵件捕捉代碼?如何在量角器配置中配置您的mailistener?你如何檢查你的測試中的電子郵件?謝謝。 – alecxe

+0

@alecxe添加了conf代碼。請稍後查看。 –

回答

0

我看到這是一個老問題,但我面臨同樣的問題,並使用近same function

我想通過鏈接獲取電子郵件的內容,並且電子郵件是HTML格式。所以:mail.text不會在這種情況下不起作用。

解決方案是非常簡單的,它爲我的作品直截了當:mail.html