Simple interface for sending mails. Turns input formats such as Markdown or console outputs using ANSI colors into nice dual plaintext/html messages. You may specify an html skeleton and a css file which are turn mail compatible.
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',
)
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
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.
- Removed
execute_send_mail.py
- Fix: reportrun ignored endlines
- reportrun accepts attatchment
- reportrun --help option and documented in README
- Added
reportrun
script
- Fix: dump does not require configuration
--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
- Option
-c
/--config
to explicit configuration file - Added wrapper
execute_send_mail.sh
- Added wrapper
activate_wrapper.sh
- Available on PyPi
- First version