Advertisement
Guest User

Untitled

a guest
Mar 16th, 2017
113
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.25 KB | None | 0 0
  1. 'use strict';
  2.  
  3. var Imap = require('imap'),
  4. inspect = require('util').inspect;
  5. var util = require('util')
  6. var Promise = require( 'bluebird' )
  7.  
  8. exports.list=function(email,pass){
  9.  
  10. var message='';
  11. var imap = new Imap({
  12. user: email,
  13. password: pass,
  14. host: 'imap.gmail.com',
  15. port: 993,
  16. tls: true
  17. });
  18.  
  19. function openInbox(cb) {
  20. imap.openBox('INBOX', true, cb);
  21. }
  22.  
  23. var promiseBuilder = [];
  24.  
  25. promiseBuilder.push( imap.openBox('INBOX', true, cb))
  26. promiseBuilder.push(imap.once('ready', function() {
  27. openInbox(function(err, box) {
  28. if (err) throw err;
  29. var f = imap.seq.fetch(box.messages.total + ':*', { bodies: ['HEADER.FIELDS (FROM TO SUBJECT DATE)','TEXT'] });
  30. f.on('message', function(msg, seqno) {
  31. var prefix = '(#' + seqno + ') ';
  32. msg.on('body', function(stream, info) {
  33. var buffer = '', count = 0;
  34. stream.on('data', function(chunk) {
  35. count += chunk.length;
  36. buffer += chunk.toString('utf8');
  37.  
  38. if (info.which === 'TEXT')
  39. console.log(prefix + 'Body [%s] (%d/%d)', inspect(info.which), count, info.size);
  40. });
  41. stream.once('end', function() {
  42. if (info.which !== 'TEXT'){
  43. console.log(prefix + 'Parsed header: %s', inspect(Imap.parseHeader(buffer)));
  44. message=inspect(Imap.parseHeader(buffer));
  45.  
  46. }else{
  47. console.log(prefix + 'Body [%s] Finished', inspect(info.which));
  48. }
  49. });
  50. });
  51. msg.once('attributes', function(attrs) {
  52. });
  53. msg.once('end', function() {
  54. });
  55. });
  56. f.once('error', function(err) {
  57. console.log('Fetch error: ' + err);
  58. });
  59. f.once('end', function() {
  60. console.log('Done fetching all messages!');
  61. imap.end();
  62. });
  63. });
  64. }))
  65.  
  66. promiseBuilder.push(imap.once('error', function(err) {
  67. console.log(err);
  68. }))
  69. promiseBuilder.push(imap.once('end', function() {
  70. }))
  71. promiseBuilder.push( imap.connect())
  72.  
  73.  
  74.  
  75.  
  76. return Promise.all(promiseBuilder).then(function (promises) {
  77. var one = promises[0];
  78. var two = promises[1];
  79. console.log(one, two)
  80. })
  81. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement