码迷,mamicode.com
首页 > Web开发 > 详细

nodejs获取邮件

时间:2015-08-06 11:24:24      阅读:144      评论:0      收藏:0      [点我收藏+]

标签:

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


nodejs获取邮件

标签:

原文地址:http://my.oschina.net/u/1177710/blog/488509

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!