Skip to content

Bulk mailer implemented in flask framework using SendGrid api for mailing. It has templating, group mailing with a rich text editor.

License

Notifications You must be signed in to change notification settings

vigneshshettyin/Bulk-Mailer

Repository files navigation

Bulk-Mailer Using Flask & Sendgrid API ⚑️

Bulk Mailer is a Mail Client web application that can be used by organizations to send bulk emails for different groups of subscribers. In general, a bulk email service is a company that allows its customers to send mass email messages to multiple lists of recipients at a specified time. With this service, you can send a single message to thousands of people on a mailing list or a personalized email to each address on a list that can be of any size. Today, marketers prefer to use bulk email services to deliver important messages with minimal effort. Unlike junk emails sent without the recipients’ permission, bulk emails are legal marketing campaigns since the recipients subscribe to receive them. However, if bulk email marketing is not properly managed, users may consider it spam, and consequently, it may hurt the sender’s reputation.

Most of the bulk email service providers price their offerings based on the number and frequency of the emails one wants to send. But, after registering with Bulk Mailer, you can send bulk emails free of charge!

Our application has a feature-rich email builder that lets you build beautiful and responsive emails in minutes. It supports adding and using different email templates as well which ensures consistency and reduced human efforts.

Scope and Importance:

Bulk mailing is an incredibly useful tool for any business as it aims to promote a business or sell goods or even develop relationships. Sending thousands or tens of thousands of messages to even just a couple of email addresses would be draining due to the amount of time and effort required. Moreover, the cost of running such a campaign would not be sustainable for any business. Using a bulk email service is cheaper, faster, and much more convenient.

This service is a prime example of how you can utilize technology to enhance traditional marketing methods. Time-saving is, of course, one of the big advantages of bulk mailing, but there are plenty of other benefits too like the ability to spark engagement. More businesses are now seeing the benefits of combining direct mail campaigns with digital marketing methods.

contributions welcome Forks Stargazers Issues MIT License GitHub watchers GitHub contributors

Feel free to use it as-is or customize it as much as you want.

But if you want to Contribute and make this much better for other developers have a look at Issues.

If you created something awesome and want to contribute then feel free to open Please don't hesitate to open an Pull Request.

Tech Stack:

CSS3 HTML5 Python JavaScript Bootstrap jQuery Flask PostgreSQL SQLite Heroku

Getting Started πŸš€

How To Use πŸ”§

1. Clone this repository to your local environment

$ git clone https://github.com/vigneshshettyin/Bulk-Mailer.git

2. Change directory into the cloned repository

$ cd Bulk-Mailer

3. Setup virtual environment

$ py -m venv env
For Windows:-
$ .\env\bin\activate
For Linux:-
$ source env/bin/activate

4. Install requirements from requirements.txt

$ pip3 install -r requirements.txt

5. Create a new file called .env and copy all the data from .env.sample to .env as it is.

6. Run the development server

$ python3 app.py

or

$ flask run

7.Now fire up your favorite web browser and go to http://127.0.0.1:5000/ You will find the application running there.

Note: If your project root directory doesn't contain bulkmailer.db then Run this on your terminal: πŸ‘‡

For Windows: πŸ’Ύ

  • To initialize a new database
    python manage.py db init
    
  • To migrate changes in the database
    python manage.py db migrate
    
  • To update the database with the new migrations
    python manage.py db upgrade
    
  • To degrade the database
    python manage.py db downgrade
    

For Linux: πŸ‘¨β€πŸ’»

  • To initialize a new database
    python3 manage.py db init
    
  • To migrate changes in the database
    python3 manage.py db migrate
    
  • To update the database with the new migrations
    python3 manage.py db upgrade
    
  • To degrade the database
    python3 manage.py db downgrade
    

For Checking Linting errors:-

pylint --load-plugins pylint_flask [module_name] Note: Users need to run the upgrade command only during the project setup since the initial migrations have already been done. It just needs to be applied using the python manage.py db upgrade command.

Detailed Step by Step Video

Lint aFormnd at πŸ“œ

  • We use Flake8 and Black for linting & formatting source code of this project.

- **Run QA checks on local environment ⚑** :
  • Run Shell script on Windows πŸ’Ύ :
...\Bulk-Mailer> .\bulkmailer_QA_Checks
  • Run Shell script on Linux πŸ‘¨β€πŸ’» :
.../Bulk-Mailer$ ./bulkmailer_QA_Checks
  • Alternate option βœ” :
    • Run this on terminal ⚑:
      • Windows πŸ’Ύ
        ...\Bulk-Mailer> black .
        
        ...\Bulk-Mailer> flake8 .
        
      • Linux πŸ‘¨β€πŸ’»
        .../Bulk-Mailer$ black .
        
        .../Bulk-Mailer$ flake8 .
        

Live Deployment πŸ“¦

Deploy it live on the web!

Deploy

When you are done with the setup, you should host your website online. We highly recommend reading through the:

Demo πŸ› οΈ

MAC

MAC

Illustrations

License πŸ“„

This project is licensed under the GPL-3.0 License. See the LICENSE file for details

For the Future

If you can help us with these. Please don't hesitate to open a Pull Request.

Cool Developers🚧

Show some ❀️ by starring the repository

Forkers repo roster for @vigneshshettyin/Bulk-Mailer

Stargazers repo roster for @vigneshshettyin/Bulk-Mailer