GithubHelp home page GithubHelp logo

sirius207 / mail_handler Goto Github PK

View Code? Open in Web Editor NEW

This project forked from pycontw/mail_handler

0.0 1.0 0.0 502 KB

Mail toolkit for PyCon Taiwan

Home Page: https://pycontw.github.io/mail_handler/

License: MIT License

Python 73.69% DIGITAL Command Language 26.31%

mail_handler's Introduction

Mail Handler

Generate emails through the template and send mails

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]
  • 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.

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",
    "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.

Contributing

See Contributing

Authors

Lee-W

mail_handler's People

Contributors

lee-w avatar tai271828 avatar setmao avatar actions-user avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.