random-message
v1.1.0
Published
Return stream for a random e-mail message
Downloads
425
Readme
random-message
Returns a random e-mail message as a stream from a folder of eml formatted email message files. Useful for testing, for example if you want to test send queues and you need a flow of real-looking random emails.
You can also use this module to split large mbox files from Google Takeout into separate eml files.
Install
Install from npm
npm install random-message
Require in your script
var randomMessage = require('random-message');
Usage
random-message requires the following folder structure:
- messages-root
- YYYY-MM
- message1.eml
- message2.eml
- message3.eml
- ...
- messageN.eml
Exact format for the message file name does not matter as long as the extension is .eml
. Messages need to reside in folders where folder name is formatted like this: YYYY-MM
, eg. "2016-07-21". You also need to have at least one email message file in every folder.
get
To get a random message from the message pool as a stream, use get
:
randomMessage.get(messagesRoot, [seed]) → Stream
Where
- messagesRoot is the path for messages-root folder. This folder should include subfolders named as YYYY-MM and these, in turn, should include the actual .eml files
- seed is an optional random seed string. For the same seed string you get the same random message
Example
randomMessage.get('/path/to/messages-root').pipe(process.stdout);
or to get the same random message every time
// Pipe a random message to stdout
randomMessage.get('/path/to/messages-root', 'somevalue').pipe(process.stdout);
// Pipe the same random message to stdout
randomMessage.get('/path/to/messages-root', 'somevalue').pipe(process.stdout);
split
If you have a large mbox file then you can split it into separate eml files using split
:
randomMessage.split(mbox, messagesRoot, callback)
Where
- mbox is the path to a mbox file
- messagesRoot is the path for messages-root folder.
split()
will create YYYY-MM subfolders for the messages automatically - callback is the callback function that returns the total amount of processed messages
Example
randomMessage.split('/path/messages.mbox', '/path/messages-root', function(err, total){
console.log('Processed %s messages', total);
});
License
MIT