Mail sending Python/CLI interface using markdown or ANSI codes based content
Project description
Emili
Simple interface for sending mails. Turns input formats such as Markdown or console outputs using ANSI colors into nice dual plaintext/html messages.
Module usage
import emili
content = """
# this is a title
Read **this** is very _important_!!
"""
emili.sendmail(
from = "me@acme.cat",
to = [ "abe@acme.cat", "bill@acme.cat" ],
bcc = [ "me@acme.cat" ],
subject = "About this email"
md = content,
attachments = [ 'onefile.pdf' ],
config = '../config.py',
)
Right now a config.py file is required containing the configuration options
for the SMTP connection in a dictionary named smtp
:
smtp=dict(
host='smtp.acme.cat',
port=465,
user='roadrunner@acme.cat',
password='mecmec',
)
Command line usage
usage: emili.py [-h] -f SENDER -s SUBJECT -t recipient [--body TEXT]
[--bodyfile BODYFILE] [-C CONFIG.PY] [-c CC] [-b BCC]
[-r REPLYTO] [--format FORMAT] [--style CSSFILE]
[--template TEMPLATE] [--dump OUTPUTFILE.eml]
[FILE [FILE ...]]
Sends an email.
positional arguments:
FILE File to attach
optional arguments:
-h, --help show this help message and exit
-f SENDER, --from SENDER
Message sender ('From:' header)
-s SUBJECT, --subject SUBJECT
Message subject ('Subject:' header)
-t recipient, --to recipient
Message recipient ('To:' header) (multiple)
--body TEXT Message body (defaults to stdin)
--bodyfile BODYFILE File containing the message body (defaults to stdin)
-C CONFIG.PY, --config CONFIG.PY
Python Module with smtp configuration defined.
-c CC, --cc CC Message copy recipient ('CC:' header) (multiple)
-b BCC, --bcc BCC Message hidden copy recipient ('BCC:' header)
(multiple), other recipients won't see this header
-r REPLYTO, --replyto REPLYTO
Default address to reply at ('Reply-To:' header)
(multiple)
--format FORMAT Format for the body. 'md' takes markdown and generates
both html and text. 'ansi' does the same, turning ANSI
color codes in html or stripping them for text.
--style CSSFILE Style sheet for the html output, (multiple)
--template TEMPLATE Alternative template for the html body.
--dump OUTPUTFILE.eml
Instead of sending, dump the email into a file
reportrun
usage: reportrun [-h] -s SUBJECT -t RECIPIENT [-f SENDER] [-C CONFIG.PY]
[FILE [FILE ...]] -- COMMAND [COMMAND_ARG ...]
reportrun wraps the execution of a command and sends an email
whenever the command fails. The mail sending is processed by
emili so that ansi codes and spacing are shown properly.
positional arguments:
FILE File to attach
COMMAND Command to run
COMMAND_ARG Argument for COMMAND
optional arguments:
-f SENDER, --from SENDER
Message sender ('From:' header)
-s SUBJECT, --subject SUBJECT
Message subject ('Subject:' header)
-t recipient, --to recipient
Message recipient ('To:' header) (multiple)
-C CONFIG.PY, --config CONFIG.PY
Python Module with smtp configuration defined.
-a, --always
Sends even if the command does not fail.
--
Marks the start of the command to execute.
Changelog
1.6 (2019-10-09)
- Fix: reportrun ignored endlines
- reportrun accepts attatchment
- reportrun --help option and documented in README
1.5 (2018-10-15)
- Added
reportrun
script
1.4 (2017-07-02)
- Fix: dump does not require configuration
1.3 (2016-11-02)
--dump
option to dump the resulting email as file instead of sending it- Fix: Better processing addresses in the format
Me <me@here.org>
- Fix: Do not take the full path as attachment name
activate_wrapper.sh
moved tosomenergia-utils
repo
1.2 (2016-03-28)
- Option
-c
/--config
to explicit configuration file - Added wrapper
execute_send_mail.sh
- Added wrapper
activate_wrapper.sh
1.1 (2016-01-12)
- Available on PyPi
1.0 (2016-01-12)
- First version
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
emili-1.6.tar.gz
(6.7 kB
view details)
File details
Details for the file emili-1.6.tar.gz
.
File metadata
- Download URL: emili-1.6.tar.gz
- Upload date:
- Size: 6.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.13.0 pkginfo/1.4.2 requests/2.21.0 setuptools/40.8.0 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.7.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4cc25aa57ef4f7f677605d586ebc7c20357975bb03b472fe9c105b73a7e69e3d |
|
MD5 | d3bfb59941a72e8c05d5bed74af1eb37 |
|
BLAKE2b-256 | d3b01ea72d154b6fd4e299fea958b1704c9721c845d7eb67d02134f6ab9dd801 |