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');
const mbox = new Mbox({ });
const fs = require('fs');
const mailbox = fs.createReadStream('filename');
const splitter= split('\n');
const mbox = mailbox.pipe(splitter).pipe(new Mbox({ }));
const fs = require('fs');
const mailbox = fs.createReadStream('filename');
const mbox = MboxStream(mailbox, { });
mbox.on('data', function(msg) {
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