UNPKG

grabbed

Version:

grabs emails and pulls attachments and dumps into a folder.

79 lines (65 loc) 1.9 kB
Imap = require("imap") path = require("path") fs = require("fs") mkdirp = require("mkdirp").sync child_process = require("child_process") inspect = require("util").inspect imap = new Imap( user: process.env.GRABBED_USER password: process.env.GRABBED_PW host: "imap.gmail.com" port: 993 tls: true tlsOptions: rejectUnauthorized: false ) process.on "uncaughtException",(err) -> console.log err.message imap.end() messagesPath = path.join(process.cwd(),"/messages/") parsedPath = path.join(process.cwd(),'done') messages = [] openInbox = (cb) -> imap.openBox "[Gmail]/cctv_shots", false, cb fetchMessages = (callback) -> cb = callback imap.search ["UNSEEN", ["SINCE", "May 20, 2010"]], (err, results) -> #throw err if err #console.log box f = imap.fetch results, markSeen:true bodies:'' f.on "message", (msg, seqno) -> #console.log msg console.log "Message #%d", seqno prefix = "(#" + seqno + ") " msg.on "body", (stream, info) -> stream.pipe fs.createWriteStream(path.join(messagesPath,"msg-#{seqno}-body.txt")) return msg.once "end", -> f.once "error", (err) -> #return cb(new Error(err)) if err? #console.log "Fetch error: " + err f.once "end", -> console.log "Done fetching all messages!" console.log "Starting parser!" console.log "cwd: #{process.cwd()}" cb(null) imap.once "ready", -> mkdirp(messagesPath) openInbox (err, box) -> #throw err if err? fetchMessages (err) -> if err? console.log err.message else console.log "Fetched messages" imap.end() imap.once "error", (err) -> #throw err if err? imap.once "end", -> console.log "Connection ended" cp = child_process.fork(path.join(process.cwd(),'lib/parser.js')) cp.on "exit", -> process.exit() imap.connect()