All Projects โ†’ kumarabhirup โ†’ bulk-mail-cli

kumarabhirup / bulk-mail-cli

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

Programming Languages

typescript
32286 projects
javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to bulk-mail-cli

Airform
Functional HTML forms for Front-End Developers.
Stars: โœญ 307 (+248.86%)
Mutual labels:  mailer, mailchimp, mailgun
nuxt-mail
Adds email sending capability to a Nuxt.js app. Adds a server route, an injected variable, and uses nodemailer to send emails.
Stars: โœญ 62 (-29.55%)
Mutual labels:  mail, npm-package, nodemailer
easymail
Easy way to install a mail server.
Stars: โœญ 60 (-31.82%)
Mutual labels:  mail, mailer
Meteor-Mailer
๐Ÿ“ฎ Bulletproof email queue on top of NodeMailer with support of multiple clusters and servers setup
Stars: โœญ 21 (-76.14%)
Mutual labels:  mail, mailer
mailer
Generic mailer
Stars: โœญ 16 (-81.82%)
Mutual labels:  mail, mailer
yii2-symfonymailer
Yii 2 Symfony mailer extension.
Stars: โœญ 29 (-67.05%)
Mutual labels:  mail, mailer
django-yubin
Send e-mails asyncronously using cron
Stars: โœญ 44 (-50%)
Mutual labels:  mail, mailer
Quicksend
Send Quick Templated emails (with CV) to different companies
Stars: โœญ 27 (-69.32%)
Mutual labels:  bulk-mailing, bulk-mail
Slmmail
Send mail from Laminas or Mezzio using external mail services.
Stars: โœญ 106 (+20.45%)
Mutual labels:  mail, mailgun
SlmMail
Send mail from Laminas or Mezzio using external mail services.
Stars: โœญ 107 (+21.59%)
Mutual labels:  mail, mailgun
mailing
๐Ÿ“ฌ Sending emails with pleasure and prepared templates.
Stars: โœญ 15 (-82.95%)
Mutual labels:  mail, mailer
mailchimp-mailer
Provides Mailchimp integration for Symfony Mailer
Stars: โœญ 20 (-77.27%)
Mutual labels:  mailer, mailchimp
MailDemon
Smtp server for mass emailing, managing email lists and more. Built on .NET Core. Linux, MAC and Windows compatible.
Stars: โœญ 113 (+28.41%)
Mutual labels:  mail, bulk-email
Free Email Forwarding
The best free email forwarding for custom domains. Visit our website to get started (SMTP server)
Stars: โœญ 2,024 (+2200%)
Mutual labels:  mail, nodemailer
go-mail
๐Ÿ“ง A cross platform mail driver for GoLang. Featuring Mailgun, Postal, Postmark, SendGrid, SparkPost & SMTP.
Stars: โœญ 169 (+92.05%)
Mutual labels:  mail, mailgun
Yii2 Swiftmailer
Yii 2 swiftmailer extension.
Stars: โœญ 109 (+23.86%)
Mutual labels:  mail, mailer
SQLiteQueryServer
Bulk query SQLite database over the network
Stars: โœญ 48 (-45.45%)
Mutual labels:  bulk-operation, bulk-api
Mailer
A lightweight PHP SMTP mail sender
Stars: โœญ 53 (-39.77%)
Mutual labels:  mail, mailer
Mailchimp Boilerplate
MailChimp repeatable blocks boilerplate
Stars: โœญ 56 (-36.36%)
Mutual labels:  mail, mailchimp
egg-mailer
๐Ÿฅš mailer plugin for egg
Stars: โœญ 23 (-73.86%)
Mutual labels:  mailer, nodemailer

bulk-mail-cli by Kumar Abhirup

Type npm Version Tests Twitter GitHub stars


pkgreview.dev Rating pkgreview.dev Rating

Like us a lot? Help others know why you like us! Review this package on pkgreview.dev โžก Review us on pkgreview.dev



๐Ÿ“ฆ 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!

Features

๐Ÿ’ƒ    Active on Slack. Join the bulk-mail-cli Slack group for suggestions, bugs reports, support, and core development.

๐Ÿ“ฆ    Shoot mails using CSV.

๐Ÿ“    Mail dynamic HTML Templates using the {{fname|lname}} syntax.

โฐ    Set the sending interval time in Cron Expressions! Eg. */10 * * * * *

๐Ÿ“Œ    Unlimited attachments! Attach any files on your local computer or you may just provide a direct URL in configuration and bulk-mail-cli will download and send the attachment under dynamic filenames and pathnames.

โ›…๏ธ    Runs on cloud! Can be run on AWS EC2 servers and on any Node.js droplet on DigitalOcean.

๐Ÿ”ฐ    It saves your campaign progress! You can pause and resume the Mail Campaign from where you left the last time.

โœจ    Use .env variables to not hardcode the emails and passwords in configuration files.

๐Ÿ‘จโ€๐Ÿซ    Contentful demo files provided! You get many beautiful email templates to pick from!

๐”€    WordPress and other CMS' friendly. Just export the list of your users, change the email containing column name to email and you are good to go!

๐Ÿงช    Tested on MacOS and Linux.



๐Ÿ’ƒ Documentation

Install bulk-mail-cli

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

npm i -g bulk-mail-cli

Get help

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


Generate demo Mail Templates and configuration files

To generate demo files, use the following command.

bulkmail demo

Configuration file

{
  "credentials": {
    "email": "{{EMAIL}}",
    "password": "{{PASSWORD}}", // turn on less-secure-apps to send emails: https://myaccount.google.com/lesssecureapps?pli=1
    "host": "smtp.gmail.com", // depends on what service you are using
    "port": 465, // 465 / 587
    "secureConnection": true // boolean: true | false
  },
  "mail": {
    "subject": "Heya {{fname}} {{lname}}! Just wanted to say hi!",
    "from": "Chandler Bing <[email protected]>", // keep the format
    "to": "leads.csv", // path to csv (relative to where this file is)
    "theme": "themes/Newsletter/theme.html", // path to csv (relative to where this file is)
    "attachments": [
      // relative path to the attachment files. Keep this array `empty` if no attachments.
      // SEE THE EXAMPLES BELOW.
      {
        "filename": "{{fname}}'s Demo CSV.csv", // You may use string patterns in fileName
        "path": "leads.csv" // You may use string patterns in path too!
      },
      {
        "filename": "{{fname}} {{lname}}'s Resume.pdf",
        "path": "https://raw.githubusercontent.com/KumarAbhirup/resume/master/Kumar%20Abhirup%20CV.pdf"
      }
    ]
  },
  "configuration": {
    "mailInterval": "*/10 * * * * *", // Cron Expression: To mail every 10 seconds [ >= 10 seconds recommended ]
    "verbose": true // boolean: True if you want a log of the live process in the terminal.
  }
}

Send the Mail ๐Ÿ”ฐ๐Ÿ”ฐ๐Ÿ”ฐ

EMAIL="[email protected]" PASSWORD="secret" bulkmail -f bulkmail.json # reference the configuration file here

That will start the mailing process! After every mail it sends, it updates the configuration file with the emails that you sent the message to. So that when you run the same campaign next time, it will resume from where you paused. To start over, you can append the --restart flag to the command.


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

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

Syntax

The syntax can be used in the email section of the CSV and can also be used everywhere in the configuration file and HTML templates. The syntax will be processed by bulk-mail-cli to generate correct mail output.

{{Hi|Hello|Howdy}} ๐Ÿ™Œ

My name is {{fname}} {{lname}}.

How'yooou dooooing? ๐Ÿ˜

...

You can also define PASSWORD environment variable so that you don't directly type it in the configuration file.

Command

PASSWORD=ThisIsAPassword bulkmail --file bulkmail.json

Configuration

{
  "credentials": {
    ...
    "password": "{{PASSWORD}}"
    ...
  }
}



๐Ÿ“ License

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

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].