a Pathetic Python Pipe Mail sender to send terminal outputs by mail
Project description
p3mail - Send terminal outputs by mail
p3mail (Pathetic Python Pipe Mail) allows you to send terminal outputs by mail
Basically something like this
./long_running_command_printing_logs | p3mail "My mail's subject"
Since it is highly probable that you are both the sender and receiver, these latter are pre-defined in a config file (see below).
Important note Remember that only stdout is captured when using pipes. You may want to redirect stderr to stdout to also catch errors. For example
./my_command_printing_errors 2>&1 | p3mail "My mail's subject"
Note: the order of stdout and stderr outputs is not preserved :( See: https://hisham.hm/2016/11/24/fun-hack-to-redirect-stdout-and-stderr-in-order/
Install
pip install p3mail
Usage
Using config
file
Copy the config_example
file to $HOME/.config/p3mail/config
and start using p3mail !
See the examples below.
Using command line
usage: p3mail [-h] [--to TO] [--from DEST] [--config CONFIG] subject
positional arguments:
subject The subject of the mail
optional arguments:
-h, --help show this help message and exit
--to TO The receiver's address. If not provided, it will look at
the config file
--from DEST The sender's address. If not provided, it will look at the
config file
--config CONFIG Specify a custom location for the config file
Examples
Send backup logs by mail
my_backup_program | p3mail "Backup for `hostname` on `date`"
Cronjob notification
If your cron job is ran by root
p3mail will look at /home/root/.config/p3mail/config
which is not something you might want. You can specify the config
file location with:
echo "Hello msg body" | p3mail --config /home/alice/.config/p3mail/config "My subject"
Tip: you can put an alias in your .bashrc
to avoid specifying this file everytime
like this:
p3mail="p3mail --config /home/alice/.config/p3mail/config"
Motivation
I coded this application because it is always painful (at least for me) to make the built-in mail service work (or whatever it is called on Linux distributions). Here are some other reasons:
- You don't always have the rights to configure this mail service (e.g. on a remote server)
sendmail
,mail
or other mail sender command line tools are not always installed or configured on the machines you are using- p3mail only requires that Python 3 is installed
- p3mail does not requires sudo rights
- p3mail needs a reason to live
Security concerns
You may not want to hardcode your smtp user or your smtp password in a config file. I understand that so p3mail allows you to read your credentials from environment variables.
- In your
config
set as an empty value for either/bothSmtpUser
/SmtpPass
e.g.SmtpPass =
- Then call
p3mail
like this:
export SMTP_USER=alice
export SMTP_PASS=super_secr3t_passw0rd
./my_verbose_script | p3mail "Verbose script report"
TODO
- Add Gmail oauth support
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file p3mail-0.1.1.tar.gz
.
File metadata
- Download URL: p3mail-0.1.1.tar.gz
- Upload date:
- Size: 3.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | d2787cf6776235cba0a9f058047ac766b9855c5a3ce13f3f920dd0a7cac15a3d |
|
MD5 | 4a88485a6297c73efb76ae1be4dc3dff |
|
BLAKE2b-256 | 7877847030e3a287eee80e8c9a0302a53ec95374e8f058eb18df26587bb851c5 |
File details
Details for the file p3mail-0.1.1-py3-none-any.whl
.
File metadata
- Download URL: p3mail-0.1.1-py3-none-any.whl
- Upload date:
- Size: 16.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | ca7989561583e2ef4e75c646744a4f795f7e0a5e4c8c11fe593b765508af9fde |
|
MD5 | bae5dd1ff8bce48e92157dd0b9af503f |
|
BLAKE2b-256 | 7bd757e285a2f935516b4a63d0bd223b8746f768b88aae12b1695fbdf5ff58ca |