Skip to content
Send bulk html emails from the commandline or in your python script by specifying a database of recipients in csv form, a html template with var placeholders and a subject line.
Branch: master
Clone or download
Pull request Compare This branch is 8 commits ahead, 1 commit behind qoda:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
scripts
.gitignore
LICENCE
README.rst
config.py
pymailer.py
setup.py
test.html

README.rst

PyMailer

Simple python bulk mailer script. Raw python using std libs.

Send bulk html emails from the commandline or in your python script by specifying a database of recipients in csv form, a html template with var placeholders and a subject line.

Requirements

  • python >= 2.4

Usage

Setup

Edit the config file before running the script:

$ vim config.py

Commandline

The simplest method of sending out a bulk email.

Run a test to predefined test_recipients:

$ ./pymailer -t /path/to/html/file.html /path/to/csv/file.csv 'Email Subject'

Send the actual email to all recipients:

$ ./pymailer -s /path/to/html/file.html /path/to/csv/file.csv 'Email Subject'

Module Import

Alernatively import the PyMailer class into your own code:

from pymailer import PyMailer

pymailer = PyMailer('/path/to/html/file.html' '/path/to/csv/file.csv' 'Email Subject')

# send a test email
pymailer.send_test()

# send bulk mail
pymailer.send()

Examples

HTML

Example of using placeholders in your html email:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html lang="en">
    <body>
        <h1>Test HTML Email - <!--name--></h1>
        <p>Hi <!--name-->, This is a test email from Pymailer - <a href="http://github.com:80/qoda/PyMailer/">http://github.com:80/qoda/PyMailer/</a>.</p>
    </body>
</html>

CSV

Example of how the csv file should look:

Someones Name,someone@example.com
Someone Else,someone.else@example.com
,some.nameless.person@example.com
You can’t perform that action at this time.