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: ‘[email protected]‘,
	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();
时间: 2024-10-10 18:08:33

nodejs获取邮件的相关文章

nodejs 获取文件的编码方式

使用nodejs获取文件夹内文件的编码方式:使用jschardet模块. 下面的代码还有问题,没有添加结束的语句,没有判断应该在哪执行res.send(). res.send()不能放在forEach后面,因为还会调用explorer,会二次输出send,出错. var fs = require('fs'); var jschardet = require('jschardet'); util = require('util'); path = "D:/node/temp/public"

NodeJS获取GET和POST请求

使用NodeJS获取GET请求,主要是通过使用NodeJS内置的querystring库处理req.url中的查询字符串来进行. 通过?将req.url分解成为一个包含path和query字符串的数组 通过querystring.parse()方法,对格式为key1=value1&key2=value2的查询字符串进行解析,并将其转换成为标准的JS对象 const http = require('http') const querystring = require('querystring')

NodeJs获取不到POST参数

NodeJs报错,从网页端获取不到POST参数,提示错误类似如下 TypeError: Cannot read property 'username' of undefined     at C:\Users\RENYUZHUO\Desktop\_\Code\Server_NodeJs\login.js:13:29     at Layer.handle [as handle_request] (C:\Users\RENYUZHUO\Desktop\_\Code\Server_NodeJs\no

Nodejs获取网络数据并生成Excel表格

Nodejs的模版中有很多关于Excel表格的,这里我简单介绍一下我使用过的一个模块的使用. 首先,先安装Excel的模块: npm install node-xlsx 然后,在代码中引入模块: var xlsx = require('node-xlsx'); 最后,获取数据并写入Excel: var fs = require('fs'); var xlsx = require('node-xlsx'); var ajax = require('./ajax.js'); start(); fun

python模拟163登陆获取邮件列表

利用cookielib和urllib2模块模拟登陆163的例子有很多,近期看了<python模拟登陆163邮箱并获取通讯录>一文,受到启发,试着对收件箱.发件箱等进行了分析,并列出了所有邮件列表及状态,包括发件人.收件人.主题.发信时间.已读未读等状态. 1.参考代码:http://hi.baidu.com/fc_lamp/blog/item/2466d1096fcc532de8248839.html%EF%BB%BF 1 #-*- coding:UTF-8 -*- 2 import urll

nodejs 获取url中json格式的参数

在使用nodejs时经常使用req.query.参数名 来获取参数的值 例如 url : http://localhost:7778/project?id=1 <span style="font-size:18px;">var id = req.query.id console.log(id);//打印出url的id参数值1 </span> 但是在url中的参数是JSON格式时就出现了问题 url:http://localhost:7778/project?ma

nodejs 获取客户端 ip 地址

为什么要获取客户端 ip: php:我们需要拿到用户客户端的ip信息,以识别用户位置,但现在我们拿到的地址永远是杭州 前端:我查一下,稍等 .... 明白了,我们加了一层 node 服务器,服务器在杭州,你们拿到的是 node 服务器的 ip php:那怎么办? 前端:我给你加一个 ip 字段吧 php:哦~ 前端:(噼里啪啦噼里啪啦......) 好了,你们看一下有值了吗? php:有了,但值不对,你给我传的是 ::ffff:127.0.0.1 ,前边那一堆 f 是什么鬼,去掉,我们只要后边的

nodejs获取常见疾病数据示例

日常生活中有一些常见的疾病,这个可以通过百度等搜索到,但是如果你要完成一款app或者小程序.网站之类的该如何来获取常见疾病的信息呢?首先想到的是通过爬虫爬取数据,然后整理搜索....其实这种方法还是太曲折了,网上有很多免费的api接口,现在已nodejs为例来看如何获取数据: var http = require('http'); var qs = require('querystring'); //配置您申请的appKey和openId app_key = "***"; open_i

nodejs获取服务器数据到页面

const Koa = require('koa'); const Router = require('koa-router'); const app = new Koa(); const router = new Router(); const views = require('koa-views'); const json = require('koa-json'); const onerror = require('koa-onerror'); const bodyparser = req