Send mail through SMTP with Python
Go to file
2023-09-29 20:21:35 +02:00
.gitignore Add venv to gitignore 2023-09-29 20:20:35 +02:00
mail.py Add logging and more options 2023-04-23 13:28:51 +02:00
message.html Add template message 2023-09-29 20:21:35 +02:00
README.md Update readme 2023-09-29 20:21:09 +02:00
requirements.txt Add requirements 2023-09-29 20:20:45 +02:00
vars.py.example Fix name 2023-04-23 13:28:58 +02:00

pymail

Easily send mails via SMTP and python

Installation

To install the requirements, run the following command

python -m pip install -r requirements.txt

Usage

Setup

  1. Copy vars.py.example to vars.py
  2. Setup vars.py with your credentials and config
  3. Adapt message.html and save your contact list to contacts.csv

Send mail

Just run

python mail.py

Templating

You can use the keys from your csv directly, prepending a $ sign (case sensitive!). For example:

Hello $name, your value is $value!

would look like the following:

Hello h4xx0r, your value is 1337!

With a contacts.csv looking like:

name value
h4xx0r 1337

Options

Sending behavior

Some mail servers will block the requests, if too many are sent too fast. You can use the variables to add delays:

  • WAIT_EVERY the amount of mails sent at once
  • DELAY_SEC the amount of seconds to wait between sending the next batch

Other options

  • LOGLEVEL the logging level, set to 'DEBUG' for most output
  • DRY_RUN if set to True, the mails wont get sent, but the output is generated as if they would be sent. Good for testing and best to use with LOGLEVEL = 'DEBUG'