Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

node-mbox

Package Overview
Dependencies
Maintainers
1
Versions
10
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

node-mbox

mbox parser for Node

  • 2.0.0
  • latest
  • Source
  • npm
  • Socket score

Version published
Maintainers
1
Created
Source

node-mbox

mbox file parser for Node.js.

Backward incompatibility warning

From version 1.0.0 onwards, message data is passed around as Buffer instead of String.

You can call msg.toString([encoding]) to convert to a string, or explicitly set the encoding option (see below).

Install

From the NPM repository:

$ npm install node-mbox

From the Github repository:

$ git clone https://github.com/robertklep/node-mbox.git
$ cd node-mbox
$ npm install [-g]

Description

This module parses mbox files, as described here but not 100% conform to [https://tools.ietf.org/rfc/rfc4155.txt] still. Starting with version 0.1.0, it's pretty speedy, processing a 1.5GB mbox file in about 20 seconds.

Note that this module doesn't parse the mail messages themselves, for which other solutions exist (for example the quite able mailparser module from Andris Reinman).

Example

See the included example.js:

$ npm install mailparser
$ node example < test/test-4-message.mbox

Options

  • includeMboxHeader : predicate if include Mbox header i.e. FROM ... ... lines (false by default).

Usage

const {Mbox, MboxStream} = require('node-mbox');
const split = require('line-stream');

// Ways of use.

// 1. pass it a filename
const mbox    = new Mbox({ /* options */ });

// 2. pass it a stream and use custom line splitter.
const fs      = require('fs');
const mailbox = fs.createReadStream('filename');
const splitter= split('\n');
const mbox    = mailbox.pipe(splitter).pipe(new Mbox({ /* options */ }));

// 3. pass it a stream and use default line splitter
const fs      = require('fs');
const mailbox = fs.createReadStream('filename');
const mbox    = MboxStream(mailbox, { /* options */ }); // It does the same as in 2. case.

// Next, catch events generated:
mbox.on('data', function(msg) {
  // `msg` is a `Buffer` instance
  console.log('got a message', msg.toString());
});

mbox.on('error', function(err) {
  console.log('got an error', err);
});

mbox.on('finish', function() {
  console.log('done reading mbox file');
});

Testing

There is a limited number of tests:

$ cd /path/to/node-mbox/
$ npm test

License

MIT

Keywords

FAQs

Package last updated on 06 Apr 2023

Did you know?

Socket

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.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc