JSPM

simple-node-imap-async

1.0.6
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 9
  • Score
    100M100P100Q27885F
  • License MIT

Updated version of simple-node-imap module handling async messages in Node.js.

Package Exports

  • simple-node-imap-async
  • simple-node-imap-async/index.js

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (simple-node-imap-async) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

Overview

Base package simple-node-imap

Version 1.0.0 Adding async/await when fetching of messages

Version 1.0.4

Adding fix to handle multiple emails being read at the same time.

Adding Boolean values to store new variables:

  • This will identify if an existing event was skipped isInstanceSkipped = Boolean

  • This will identify if an existing event is already running isInstanceRunning = Boolean

  • This will store instances(mail) that is currently being processed instances = Array

Version 1.0.6

  • Adding xoauth2. (less-secure-apps won't be supported with google anymore by the end of May 2022)

Use

Install

npm install simple-node-imap-async

JavaScript Code:

const SimpleImapAsync = require("simple-node-imap-async");

const simpleImapAsync = new SimpleImapAsync({
  xoauth2: "xoauth2",
  username: "imap-username", // Will be deprecated on May 30, 2022
  password: "imap-password", // Will be deprecated on May 30, 2022
  host: "imap-host",
  port: 993, // imap port
  tls: true,
  connTimeout: 10000, // Default by node-imap
  authTimeout: 5000, // Default by node-imap,
  debug: console.log, // Or your custom function with only one incoming argument. Default: null
  tlsOptions: { rejectUnauthorized: false },
  mailbox: "INBOX", // mailbox to monitor
  searchFilter: ["UNSEEN", "FLAGGED"], // the search filter being used after an IDLE notification has been retrieved
  markSeen: true, // all fetched email willbe marked as seen and not fetched next time
  fetchUnreadOnStart: true, // use it only if you want to get all unread email on lib start. Default is `false`,
  mailParserOptions: {streamAttachments: true}, // options to be passed to mailParser lib.
  attachments: true, // download attachments as they are encountered to the project directory
});

simpleImapAsync.start(); // start listening


simpleImapAsync.on("server:connected", () => {
  console.log("imapConnected");
});

simpleImapAsync.on("server:disconnected", () => {
  console.log("imapDisconnected");
});

simpleImapAsync.on("error", err => {
  console.log(err);
});

simpleImapAsync.on("message", message => {
  console.log(message);
});


// stop listening
simpleImapAsync.stop();

Attachments

Attachments are converted into base64 strings.

License

MIT