1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78
| var Client = require('yapople').Client; var _ = require('lodash'); var async = require('async'); var iconv = require('iconv-lite');
var Fetcher = module.exports = function(options){ this.options = _.assign(options,{port:995,tls:true,mailparser:true}) this.client = new Client(this.options) this.mails = [] }
Fetcher.prototype.count = function(cb){ var self = this self.client.connect(function(){ self.client.count(cb); self.client.quit(); }); }
Fetcher.prototype.fetch = function(nums,cb){ var self = this; self.client.connect(function(){ self.client.retrieve(nums,function(err,messages){ cb(err,messages); self.client.quit(); }) }); }
Fetcher.prototype.list = function(number,cb){ var self = this; self.client.connect(function(){ self.client.list(number,function(err,info){ cb(err,info); self.client.quit(); }) }); }
Fetcher.prototype.getContent = function(date,cb){ var self = this; self.client.connect(function(){ async.waterfall([ function(done){ self.client.count(function(err,count){ done(err,count); }); }, function(count,done){ var nums = []; var tmp = []; for(var i=0;i<count;i++){ nums.push(i+1); }
self.client.retrieve(nums,function(err,res){ console.log('res length',res.length); done(err,tmp); }); } ],function(err,results){ cb(err,results); self.client.quit(); }); }); }
Fetcher.prototype._connect = function(cb){ var self = this; self.client.connect(function(){ self.client.retrieve([2],function(err,messages){ cb(err,messages); self.client.quit(); }) }) }
|