/mass-mailer

Python-based mass mailer script

Primary LanguagePythonBSD 3-Clause "New" or "Revised" LicenseBSD-3-Clause

mass-mailer

Python-based mass mailer script

Author: Christian Federmann cfedermann@gmail.com

Version: 2013-03-15

Usage: $ mass_mailer.py [--dry-run] <config.ini> <mail.html|txt> <emails.csv>

Sends an individualised version of mail.html|txt to all recipient email addresses contained in emails.csv; configuration details such as mail server or header fields are read from config.ini.

The following fields inside config.ini are required:

SMTP=smtp.example.org
FROM=someone@example.org
SUBJECT=Mails without subject would not make sense, right?!

There also are some optional settings:

REPLY-TO=someone@example.org (defaults to FROM address)
BCC=someone-to-get-bcc-copies@example.org
FIRST_LASTNAME=Sir or Madam

The mail.html|txt file may contain HTML markup and should be saved in UTF-8 encoding; there is one "special" placeholder {{FIRST_LASTNAME}} which can be used to insert the personalised recipient name into the email. If the name cannot be resolved from the email address, the script will use FIRST_LASTNAME from config.ini, iff available, defaulting to "Sir or Madam" otherwise.

A template ending with extension ".txt" triggers sending of plain text emails.

Email addresses should be given in comma-separated list form, e.g.:

# firstname,lastname,email
John,Doe,john@example.org
,,noname@example.org

You can use the optional "--dry-run" flag to run the script in testing mode which will do everything except sending out the actual emails.

It is a wise idea to test any new mail.html|txt or config.ini with your own email address first. The author does not any responsibility for emails sent out with this tool. By using the script, you accept this.

Code is available under BSD-style terms. See LICENSE for more information.