Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //READ, MARKSEEN, DOWNLOAD ATTACHMENT ON MAIL WITH NODEJS
- //HOW TO USE
- // INSTALL : NODEJS. NPM
- // CREATE DIRECTORY AND INSTALL PACKAGE NODEJS
- // npm install imap-simple
- // npm install simple-excel-to-json
- // RUN SCRIPT : node your_script.js
- const fs = require('fs')
- var imaps = require('imap-simple');
- var Parser = require('simple-excel-to-json');
- var parser = new Parser.XlsParser()
- var config = {
- imap: {
- user: 'account123@gmail.com',
- password: 'xxx',
- host: 'imap.gmail.com',
- port: 993,
- tls: true,
- authTimeout: 3000
- }
- };
- imaps.connect(config).then(function (connection) {
- connection.openBox('INBOX').then(function () {
- var searchCriteria = ['UNSEEN', ['SUBJECT', 'EMPAS'], ['FROM', 'sender123@gmail.com']];
- var fetchOptions = {
- bodies: ['HEADER'],
- struct: true,
- markSeen: false
- };
- // retrieve only the headers of the messages
- return connection.search(searchCriteria, fetchOptions);
- }).then(function (messages) {
- console.log('messages-----',messages)
- var attachments = [];
- messages.forEach(function (message) {
- var parts = imaps.getParts(message.attributes.struct);
- var x = imaps.getParts(message.parts);
- // console.log(x)
- attachments = attachments.concat(parts.filter(function (part) {
- return part.disposition && part.disposition.type.toUpperCase() === 'ATTACHMENT';
- }).map(function (part) {
- // retrieve the attachments only of the messages with attachments
- return connection.getPartData(message, part)
- .then(function (partData) {
- return {
- filename: part.disposition.params.filename,
- data: partData
- };
- });
- }));
- });
- return Promise.all(attachments);
- }).then(function (attachments) {
- var dir = 'files';
- console.log('create directory files')
- if (!fs.existsSync(dir)){
- fs.mkdirSync(dir);
- }
- for (let i = 0; i < attachments.length; i++) {
- const el = attachments[i];
- var chk = el.data
- fs.writeFileSync("files/test.xlsx", chk, function(err) {
- if(err) {
- return console.log(err);
- }
- });
- var doc = parser.parseXls2Json('files/test.xlsx')
- console.log('-----doc----', doc)
- }
- connection.end()
- });
- });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement