daemail 0.7.0

Creator: codyrutscher

Last updated:

Add to Cart

Description:

daemail 0.7.0

GitHub
| PyPI
| Issues
| Changelog
daemail (pronounced “DEE-mayl”, like “e-mail” but with a D) is a Python
script built on top of python-daemon for running a normally-foreground
command in the background and e-mailing its output (by default, the combined
stdout and stderr) once it’s done.

Installation
daemail requires Python 3.6 or higher. Just use pip for Python 3 (You have pip, right?) to install
daemail and its dependencies:
python3 -m pip install daemail


Usage
daemail [<options>] <command> [<arg> ...]
daemail runs command with the given arguments in the background and
sends an e-mail once the command finishes. The sending of the e-mail is
performed by the outgoing library, and thus an outgoing configuration file
must be created with settings for sending e-mail before daemail can be
used.

Options

-c FILE, --config FILE
Read sending configuration for the outgoing library
from FILE; defaults to outgoing’s default
configuration file

-C DIR, --chdir DIR
Change to DIR after daemonizing but before running
the command; defaults to the current directory

-D MBOX, --dead-letter MBOX
If an error occurs when trying to send, append the
e-mail (including a description of the error) to the
file MBOX; defaults to dead.letter. If the
file already exists, it must be a valid mbox file.

-e ENCODING, --encoding ENCODING
Expect the stdout (and stderr, if --split is not in
effect) of the command to be in the given encoding;
defaults to the preferred encoding returned by Python’s
locale.getpreferredencoding. If decoding fails, the output
will be attached to the e-mail as an
application/octet-stream file named “stdout”.
When --mime-type or --stdout-filename is also
given, this option has no effect other than to set the
default value for --stderr-encoding.

-E ENCODING, --stderr-encoding ENCODING
Expect the stderr of the command to be in the given
encoding; defaults to the value specified via
--encoding or its default. If decoding fails, the
stderr output will be attached to the e-mail as an
application/octet-stream file named “stderr”.
This option only has an effect when --split is
given, either implicitly or explicitly.

--foreground, --fg
Run everything in the foreground instead of
daemonizing. Note that command output will still be
captured rather than displayed.

-f ADDRESS, --from ADDRESS, --from-addr ADDRESS
Set the From: address of the e-mail. The address
may be given in either the form
“address@example.com” or “Real Name <address@example.com>.” If not specified,
daemail will not set the From: header and will
expect the mail command or SMTP server to do it
instead.

-F, --failure-only
Only send an e-mail if the command failed to run or
exited with a nonzero status

-l LOGFILE, --logfile LOGFILE
If an unexpected & unhandleable fatal error occurs
after daemonization, append a report to LOGFILE;
defaults to daemail.log
Such an error is a deficiency in the program; please
report it!

-M MIME-TYPE, --mime-type MIME-TYPE, --mime MIME-TYPE
Attach the standard output of the command to the
e-mail as an inline attachment with the given MIME
type. The MIME type may include parameters, e.g.,
--mime-type "text/html; charset=utf-16". If
--stdout-filename is not also supplied, the
attachment is named “stdout”. Implies --split.

-n, --nonempty
Do not send an e-mail if the command exited
successfully and both the command’s stdout & stderr
were empty or not captured

--no-stdout
Don’t capture the command’s stdout; implies --split

--no-stderr
Don’t capture the command’s stderr; implies --split

-S, --split
Capture the command’s stdout and stderr separately
rather than as a single stream

--stdout-filename FILENAME
Attach the standard output of the command to the e-mail
as an inline attachment with the given filename. If
--mime-type is not also supplied, the MIME type of
the attachment is deduced from the file extension,
falling back to application/octet-stream for
unknown extensions. Implies --split.

-t ADDRESS, --to ADDRESS, --to-addr ADDRESS
Set the recipient of the e-mail. The address may be
given in either the form “address@example.com” or
“Real Name <address@example.com>.”
This option is required. It may be given multiple
times in order to specify multiple recipients.

-Z, --utc
Show start & end times in UTC instead of local time





Caveats

Input cannot be piped to the command, as standard input is closed when
daemonizing. If you really need to pass data on standard input, run a shell,
e.g.:
daemail bash -c 'command < file'
or:
daemail bash -c 'command | other-command'

License

For personal and professional use. You cannot resell or redistribute these repositories in their original state.

Customer Reviews

There are no reviews.