Return stream for a random e-mail message
npm install random-messageReturns 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 from npm
```
npm install random-message
Require in your script
`javascript`
var randomMessage = require('random-message');
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.
To get a random message from the message pool as a stream, use get:
`javascript`
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
`javascript`
randomMessage.get('/path/to/messages-root').pipe(process.stdout);
or to get the same random message every time
`javascript`
// 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);
If you have a large mbox file then you can split it into separate eml files using split:
`javascript`
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
`javascript``
randomMessage.split('/path/messages.mbox', '/path/messages-root', function(err, total){
console.log('Processed %s messages', total);
});
MIT