Skip to content
Do quick, hassle-free email marketing with this small but very powerful tool! ๐Ÿ”ฅ
Branch: master
Clone or download
Fetching latest commitโ€ฆ
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github/ISSUE_TEMPLATE ๐ŸŽ‰ Launch the MVP ๐Ÿ”ฅ (#17) Jan 29, 2019
.vscode ๐ŸŽ‰ Launch the MVP ๐Ÿ”ฅ (#17) Jan 29, 2019
node_modules ๐ŸŽ‰ Launch the MVP ๐Ÿ”ฅ (#17) Jan 29, 2019
.babelrc ๐ŸŽ‰ Launch the MVP ๐Ÿ”ฅ (#17) Jan 29, 2019
.gitignore ๐ŸŽ‰ Launch the MVP ๐Ÿ”ฅ (#17) Jan 29, 2019
LICENSE ๐ŸŽ‰ Launch the MVP ๐Ÿ”ฅ (#17) Jan 29, 2019
index.js ๐ŸŽ‰ Launch the MVP ๐Ÿ”ฅ (#17) Jan 29, 2019
package.json ๐Ÿš€ RELEASE: v1.0.1 May 26, 2019

bulk-mail-cli by Kumar Abhirup

Type stage npm Version Prefers Twitter

๐Ÿ“ฆ bulk-mail-cli

Do quick, hassle-free email marketing with this small but very powerful tool! ๐Ÿ”ฅ

It sends automated, dynamic and beautifully designed HTML emails to your mailing list via your terminal! ๐Ÿ˜Ž

Ever felt a quick need to shoot a fabulous mail to your subscribers? Without any inconvenience of creating complex campaigns with MailChimp and MailGun? Just open your terminal, input the CSV and HTML file with dynamic text, and just shoot the mails with bulk-mail-cli!

๐Ÿฆ‹ Introduction

Following YouTube video is a tutorial of using bulk-mail-cli like a PRO!

Introduction to bulk-mail-cli

๐Ÿ‘Œ Use it in just 3 steps!...

bulk-mail-cli upcoming features

Note: This project is yet an MVP (Minimum Viable Product). Right now, it doesn't work on Windows machines. Working to make it cross-platform. SORRY TO KEEP YOU WAITING!

๐Ÿ’ƒ Documentation

Install bulk-mail-cli

Assuming that you have node and npm installed... Run the following in your terminal.

$ npm i -g --only=prod bulk-mail-cli

Get help

Just run bulkmail in your terminal to see what commands and flags you can use to do awesome things.

Generate demo Mail Templates and a CSV file

To generate demo files, paste the following command.

$ bulkmail demo

Writing data in CSV

List emails the right way!

If you use WordPress, you may just import the CSV file of users by using this plugin.

  • When you use that plugin, just change the user-email column name of the CSV file to just email so that to ensure no errors.

If you are feeding data from any other source or by manual means, please for the GOD's SAKE ensure that you list emails only under the email column.

If the CSV file has emails fed in some other coulumn name (such as user-email, allEmails, etc)... bulk-mail-cli would simply throw an error to not work at all.

Dynamic data ๐ŸŽ‰

This feature was introduced in v0.9.0

You may add any other column featuring custom data. Namely fname, lname, address, etc... to use in the Subject and Body of your campaign mail.

Making custom dynamic HTML Mail Templates

Grab the sample templates

  • For most use cases, the bulkmail demo served HTML templates will do the work. But if they don't satisfy your needs, you may check for more designs online!
  • When using a bulkmail demo served HTML template, ensure that you edit and tailor the email template file according to your needs.

Display custom CSV data (Dynamic) ๐ŸŽ‰

  • Wanna display the fname field of the user you listed in CSV file? Just add ({#fname#}) anywhere you want in the HTML template!
  • You may add any fieldname that exists in the CSV file, or else the dynamic text won't render.

Correct use of Dynamic Text

โŒ ย  ย  ({# customfield#})
โŒ ย  ย  ({#customfield #})
โŒ ย  ย  ({# customfield #})
โŒ ย  ย  ({customfield})
โœ… ย  ย  ({#customfield#})

Shoot the mails after you curate data

If you are to send mails using Gmail, just turn on the less secure apps option here...

Done tweaking with Templates and CSV file? Done doing those configurations? It is time to send the mails!

$ bulkmail mail

Wait, bulkmail mail is not all. The CLI will then ask you for Service Credentials that you need to fill in order to complete the process. It will also ask for the path of the HTML email template and the CSV file.

Somewhat similar to what you see below:

$ bulkmail mail

Service credentials...
service: gmail/yahoo/custom
password: โ€ขโ€ขโ€ขโ€ขโ€ขโ€ขโ€ขโ€ขโ€ขโ€ขโ€ขโ€ขโ€ขโ€ขโ€ขโ€ขโ€ข

Connection successful! ๐Ÿ˜€

Path to CSV: <you can use bash's auto navigating feature>
Path to Mail Template: <you can use bash's auto navigating feature>

From text: John Doe <>
Subject: Hi ({#fname#})! Here's your mail.

Mass Mailer started ๐Ÿ‘ป
[-------------------------------------------------->] 100%

Mails sent to everyone successfully in 9.43 seconds.

Thank you for using bulk-mail-cli ๐Ÿ˜€

Credentials are asked only for the first time.

Change your Service Credentials

Just type in the given command and see bulk-mail-cli automatically asking for the credentials again!

$ bulkmail config --auth


  • Time Interval after every mail.
  • Internationalization. Will soon be available in 4-5 major languages.
  • UX and Performance improvement.


๐Ÿ‘ฎ Wanna contribute?

bulk-mail-cli upcoming features

Step 1 ๐Ÿด

Fork this project.

Step 2 ๐Ÿ”

Clone the forked project on your local machine.

Step 3 ๐Ÿ—ฝ

Create a new branch in cloned project named PR/{whatever} and work there.

๏ธ๏ธ๏ธ๏ธ๏ธ๏ธStep 4 โœ๏ธ

Run npm i in the project directory.

Step 5 ๐ŸŽฉ

Do the magic you wanted to.

Step 6 โœ๏ธ

Run npm run build to check if everything works good so far.

Step 7 ๐Ÿน

And if you are done, just shoot a Pull Request at development branch of bulk-mail-cli...

The hurray kinda step ๐Ÿ˜‰ ๐ŸŽ‰

Get your Pull Request merged...

๐Ÿ“ License

GPL ยฉ Kumar Abhirup
Follow me ๐Ÿ‘‹ on Twitter โ†’ Twitter

You canโ€™t perform that action at this time.