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.
daemail
requires Python 3.8 or higher. Just use pip for Python 3 (You have pip, right?) to install
daemail
and its dependencies:
python3 -m pip install daemail
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.
-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 When |
-E ENCODING, --stderr-encoding ENCODING | |
 |
Expect the stderr of the command to be in the given
encoding; defaults to the value specified via
This option only has an effect when |
--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 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 " 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 |
-
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'