nodejs获取邮件

npm install imap

npm install mailparser

var Imap = require('imap');
var inspect = require('util').inspect;
var Mailparser = require('mailparser').MailParser;
var fs = require('fs');


var imap = new Imap({
	user: 'user@163.com',
	password: 'password',
	host: 'imap.163.com',
	port: '993',
	tls: true
});

function openIndex(cb) {
	imap.openBox('INBOX',true,cb) ;
}

imap.once('ready', function() {
    openIndex(function(err, box){
        //邮件搜索: 2015/7/28以后未读的
        imap.search(['UNSEEN', ['SINCE', 'July 28, 2015']], function(err, results){
            console.log(results);
            if(err) console.log( err );

            var f = imap.fetch(results, {

            	bodies: '',
            	struct: true
            });

            f.on('message', function(msg, seqno){
                 console.log('Message #%d', seqno);
                 var prefix = '(#' + seqno + ')' ;
                 msg.on('body', function(stream, info){
                      console.log('INFO WHICH: ',info.which);
                      if(info.which === 'TEXT') {
                      	console.log(prefix + 'Body [%s] found, %d total bytes',inspect(info.which), info.size) ;
                      }

                      var mailparser = new Mailparser();
                      stream.pipe(mailparser);
                      mailparser.on('end',function(mail){

                      	 //将mail的内容保存到根目录下的一个html文件里
                         fs.writeFile('msg-'+seqno+'-body.html',mail.html,function(err){
                              if(err) throw err;
                              console.log(prefix + 'saved!');
                         });
                      });
                 });

                 msg.once('attributes', function(attrs){
                     console.log(prefix + 'Attributes: %s',inspect(attrs,false,8));
                 });

                 msg.once('end', function(){
                     console.log(prefix + 'Finished');
                 });
            });

            f.once('error', function(err){
                  console.log('Fetch error: '+err);
            });

            f.once('end', function(){
                  console.log('Done fetching all messages!');
                  imap.end();
            });
        });
    });
});

imap.once('error', function(err){
      console.log(err)   
});

imap.once('end', function(){
      console.log('Connection ended');
});

imap.connect();


转载于:https://my.oschina.net/u/1177710/blog/488509

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值