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.
Python Perl Shell
Find file
Pull request Compare This branch is 7 commits ahead, 5 commits behind qoda:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
.gitignore
LICENCE
OVERVIEW.rst
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.

NOTE: In this fork, OVERVIEW.rst contains some more detailed information on how to use it.

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
Something went wrong with that request. Please try again.