Generate emails through the template and send mails
This CLI tool is designed as two steps to avoid accidental sending.
# 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.
render_mail [OPTIONS] TEMPLATE_PATH RECEIVER_DATA
Options:
--mails_path PATH [default: mails_to_sent]
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.
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",
"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.
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
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 only support the smtp server of gmail
,
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.
See Contributing