Skip to main content

Mail toolkit for PyCon Taiwan

Project description

PRs Welcome Conventional Commits Code style: black Github Actions PyPI Package latest release PyPI Package download count (per month) Supported versions

Mail Handler

Generate emails through the template and send mails. If you are user of Mail Handler, please refer to this docs.

Prerequisite

Usage

This CLI tool is designed as two steps to avoid accidental sending.

Step 1: Install pycontw-mail-handler through pipx (or install in your virtual environment)

# Install pipx
python -m pip install pipx

# Install pycontw-mail-hanlder through pipx
python -m pipx install pycontw-mail-handler

After install pycontw-mail-handler, you can run render_mail and send_mail commands in your environment.

Step 2: Generate mails through the template

render_mail [OPTIONS] TEMPLATE_PATH RECEIVER_DATA

Options:
  --mails_path PATH  [default: mails_to_sent]
  --separator ' TEXT '
  --unique_csv PATH
  • TEMPLATE_PATH: The path to the jinja2 template.
  • RECEIVER_DATA: The path to receivers' data.
    • The following json sample is the least required content. All other data can be added to fit the need of the template.
    • "common_data": Common data used in each mail
    • "unique_data": Unique content for each mail
{
    "common_data": {},
    "unique_data": [
        {"receiver_email": "somerec@somedomain"}
    ]
}

Please note the comma is able to be used as a receiver separator to send multiple people. For example, the following 3 formats are all working:

A space following a comma

{
    "common_data": {},
    "unique_data": [
        {"receiver_email": "somerec01@somedomain, somerec02@somedomain"}
    ]
}

No space following a comma

{
    "common_data": {},
    "unique_data": [
        {"receiver_email": "somerec01@somedomain,somerec02@somedomain"}
    ]
}

Or mix both of the above two types

{
    "common_data": {},
    "unique_data": [
        {"receiver_email": "somerec01@somedomain, somerec02@somedomain,somerec03@somedomain"}
    ]
}
  • --mails_path PATH: The output path of the mails. The mail will be named as the receivers email address.

Usage example:

render_mail  ./templates/sponsorship/spam_sponsors_2020.j2 examples/sponsorship/spam_sponsors_2020.json

Step 3: Send the generated mails

send_mail [OPTIONS] CONFIG_PATH

Options:
  --mails_path PATH  [default: mails_to_sent]
  --attachment_file PATH
  • CONFIG_PATH: The path to mail config.
{
    "Subject": "some subject",
    "From": "somebody@somedomain",
    "SenderName": "your name",
    "CC": "somebody1@somedomain, somebody2@somedomain"
}

Please note the comma is used as a receiver separator to send multiple people.

  • --mails_path PATH: The path of the mails to sent.

Usage example:

send_mail ./examples/sponsorship/spam_sponsors_2020_mail_config.json

By issuing the send_mail.py command, you will be prompted to input the corresponding password of your smtp server.

You are about to send the mails under "mails_to_sent". Do you want to continue? [y/N]: y
Using default Gmail SMTP server...
Please enter your mail account: <sender email address in mail config>
Please enter you mail password:
INFO:root:Email sent to <receiver address in RECEIVER_DATA>!

Currently we use smtp server of gmail as default, so you may want to use the one-time app password for security concern. To use gmail one-time app password, please go to Manage your Goolge Account > Security > Signning to Google > App passwords and then Select app > Other to generate your one-time app password. The generated password could be removed anytime if you are sure that you won't use it anymore. If you would like to use specific smtp server, please refer user guide.

Contributing

See Contributing

Authors

Lee-W

Created from Lee-W/cookiecutter-python-template version 1.0.0

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pycontw-mail-handler-0.7.0.tar.gz (8.3 kB view details)

Uploaded Source

Built Distribution

pycontw_mail_handler-0.7.0-py3-none-any.whl (7.8 kB view details)

Uploaded Python 3

File details

Details for the file pycontw-mail-handler-0.7.0.tar.gz.

File metadata

  • Download URL: pycontw-mail-handler-0.7.0.tar.gz
  • Upload date:
  • Size: 8.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.0 CPython/3.9.12

File hashes

Hashes for pycontw-mail-handler-0.7.0.tar.gz
Algorithm Hash digest
SHA256 f2a89466cbf596b32b34f659e5ffe048c4708b6b01b9d02cbdb0d4ae68fa1508
MD5 4e416a23e8c7521e72ae2744917a3e00
BLAKE2b-256 85ef6fed38dbf44497e3378bccfb6174962faec8f387a1f3b4eb05fd0a5357a7

See more details on using hashes here.

File details

Details for the file pycontw_mail_handler-0.7.0-py3-none-any.whl.

File metadata

File hashes

Hashes for pycontw_mail_handler-0.7.0-py3-none-any.whl
Algorithm Hash digest
SHA256 ee0a400d0e30999891521a054df2aaf6dbcdbd68de943d33938c45283dad7af6
MD5 51fa96e92753b65d9ec783e210748ea7
BLAKE2b-256 2b0d7ba7c4295f93cfc436e49e886e17182c2bd6421993b61e5e972b51721cd3

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page