Skip to content

Latest commit

 

History

History
99 lines (60 loc) · 2.22 KB

README.md

File metadata and controls

99 lines (60 loc) · 2.22 KB

Mailgun Bulk Sender

A command line utility to send one-off emails to a large set of users through Mailgun written in node.js (v8+).

How to use

1. Install dependencies

In the project folder do

npm install

2. Create a configuration file

Make a copy the sample config file:

cp config.sample.json config.json

3. Edit the configuration file

Update config.json and enter the Mailgun domain and api key.

Sending campaigns

To send a campaign you will need a set of files that describe the campaign:

subject.txt: One liner for email subject
body.html: HTML version of the email
body.txt: Text version of the email
users.csv: A list of users to send to

See the examples/ folder for sample data.

Quick start

Type npm start -- --sendit to start an interactive input of your data files or npm start -- -h for a list of command line arguments.

The utility will batch send the email using the Mailgun batch API.

Note that unless the --sendit command line argument is specified no email will be actually sent (fake mode by default).

Recipient variables

TODO

Advanced usage

Mailgun testmode

Mailgun supports test mode in order to consume the send API request but not actually send it. To enable test mode set mailgun.testmode to true in the config.json.

Note that Mailgun charges for test mode

Mailgun tags

Mailgun supports tagging for categorizing email traffic. To add tags to the emails sent, populate the mailgun.tags array in the config.json.

Reply-to address

To specify a reply-to address set the mailgun.reply-to property in config.json.

More configs

The easiest way to configure the utility is to provide a config.json, however you can also create a configuration file that is loaded based on the NODE_ENV enviroment variable. The utility will try to load a config.<NODE_ENV>.json before falling back to config.json.

For example:

NODE_ENV=production npm start

will load

config.production.json

Tests

To run the test suite do:

npm test

More examples

TODO