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 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 Update readme 2023-09-29 20:21:09 +02:00
requirements.txt Add requirements 2023-09-29 20:20:45 +02:00 Fix name 2023-04-23 13:28:58 +02:00


Easily send mails via SMTP and python


To install the requirements, run the following command

python -m pip install -r requirements.txt



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

Send mail

Just run



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


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'