Security News
38% of CISOs Fear They’re Not Moving Fast Enough on AI
CISOs are racing to adopt AI for cybersecurity, but hurdles in budgets and governance may leave some falling behind in the fight against cyber threats.
IMAP Client library for IMAP API.
The focus for ImapFlow is to provide easy to use API over IMAP. Using ImapFlow does not expect knowledge about specific IMAP details, general understanding is good enough.
IMAP extensions are handled in the background, so for example you can always request labels
value from a {@link FetchQueryObject|fetch()} call but if the IMAP server does not support X-GM-EXT1
extension, then labels
value is not included in the response.
Source code is available from Github.
First install the module from npm:
$ npm install imapflow
next import the ImapFlow class into your script:
const { ImapFlow } = require('imapflow');
All ImapFlow methods use Promises, so you need to wait using await
or wait for the then()
method to fire until you get the response.
const { ImapFlow } = require('imapflow');
const client = new ImapFlow({
host: 'ethereal.email',
port: 993,
secure: true,
auth: {
user: 'garland.mcclure71@ethereal.email',
pass: 'mW6e4wWWnEd3H4hT5B'
}
});
const main = async () => {
// Wait until client connects and authorizes
await client.connect();
// Select and lock a mailbox. Throws if mailbox does not exist
let lock = await client.getMailboxLock('INBOX');
try {
// fetch latest message source
// client.mailbox includes information about currently selected mailbox
// "exists" value is also the largest sequence number available in the mailbox
let message = await client.fetchOne(client.mailbox.exists, { source: true });
console.log(message.source.toString());
// list subjects for all messages
// uid value is always included in FETCH response, envelope strings are in unicode.
for await (let message of client.fetch('1:*', { envelope: true })) {
console.log(`${message.uid}: ${message.envelope.subject}`);
}
} finally {
// Make sure lock is released, otherwise next `getMailboxLock()` never returns
lock.release();
}
// log out and close connection
await client.logout();
};
main().catch(err => console.error(err));
MIT-licensed version is available for Postal Systems subscribers.
First install the module from Postal Systems private registry:
$ npm install @postalsys/imapflow
next import the ImapFlow class into your script:
const { ImapFlow } = require('@postalsys/imapflow');
If you have already built your application using the free version of ImapFlow and do not want to modify require statements in your code, you can install the MIT-licensed version as an alias for "imapflow".
$ npm install imapflow@npm:@postalsys/imapflow
This way you can keep using the old module name
const { ImapFlow } = require('imapflow');
© 2020 Andris Reinman
Licensed under GNU Affero General Public License v3.0 or later.
MIT-licensed version of ImapFlow is available for Postal Systems subscribers.
FAQs
IMAP Client for Node
The npm package imapflow receives a total of 13,239 weekly downloads. As such, imapflow popularity was classified as popular.
We found that imapflow demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 0 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
CISOs are racing to adopt AI for cybersecurity, but hurdles in budgets and governance may leave some falling behind in the fight against cyber threats.
Research
Security News
Socket researchers uncovered a backdoored typosquat of BoltDB in the Go ecosystem, exploiting Go Module Proxy caching to persist undetected for years.
Security News
Company News
Socket is joining TC54 to help develop standards for software supply chain security, contributing to the evolution of SBOMs, CycloneDX, and Package URL specifications.