muttdown
muttdown is a sendmail-replacement designed for use with the mutt email client which will transparently compile annotated text/plain mail into text/html using the Markdown standard. It will recursively walk the MIME tree and compile any text/plain or text/markdown part which begins with the sigil "!m" into Markdown, which it will insert alongside the original in a multipart/alternative container.
It's also smart enough not to break multipart/signed.
For example, the following tree before parsing:
- multipart/mixed
|
-- multipart/signed
|
---- text/markdown
|
---- application/pgp-signature
|
-- image/png
Will get compiled into
- multipart/mixed
|
-- multipart/alternative
|
---- text/html
|
---- multipart/signed
|
------ text/markdown
|
------ application/pgp-signature
|
-- image/png
Configuration
Muttdown's configuration file is written using YAML. Example:
smtp_host: smtp.gmail.com
smtp_port: 587
smtp_ssl: false
smtp_username: foo@bar.com
smtp_password: foo
css_file: ~/.muttdown.css
assume_markdown: false
If you prefer not to put your password in plaintext in a configuration file, you can instead specify the smtp_password_command parameter to invoke a shell command to lookup your password. The command should output your password, followed by a newline, and no other text. On OS X, the following invocation will extract a generic "Password" entry with the application set to "mutt" and the title set to "foo@bar.com":
smtp_password_command: security find-generic-password -w -s mutt -a foo@bar.com
NOTE: If smtp_ssl is set to False, muttdown will do a non-SSL session and then invoke STARTTLS. If smtp_ssl is set to True, muttdown will do an SSL session from the get-go. There is no option to send mail in plaintext.
The css_file should be regular CSS styling blocks; we use pynliner to inline all CSS rules for maximum client compatibility.
Muttdown can also send its mail using the native sendmail if you have that set up (instead of doing SMTP itself). To do so, just leave the smtp options in the config file blank, set the sendmail option to the fully-qualified path to your sendmail binary, and run muttdown with the -s flag
If assume_markdown is true, then all input is assumed to be Markdown by default and the !m sigil does nothing.
Installation
Install muttdown with pip install muttdown or by downloading this package and running python setup.py install. You will need the PyYAML and Python-Markdown libraries, as specified in requirements.txt. This should work with Python 3.6+.
Usage
Invoke as
muttdown -c /path/to/config -f "from_address" -- "to_address" [more to addresses...]
Send a RFC822 formatted mail on stdin.
If the config path is not passed, it will assume ~/.muttdown.yaml.
Metadata
Release files for muttdown 0.4.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| muttdown-0.4.0.tar.gz | 11.5 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| muttdown-0.4.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 19.7 kB
Release files / muttdown-0.4.0.tar.gz
| Download URL | muttdown-0.4.0.tar.gz |
|---|---|
| Size | 11.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
ac3b85fba02fde632b606d99d862d44354013733251972c5afd3bbeffa8113b9
|
|
BLAKE2b-256 checksum How to use checksums |
fe0eccb2e44e566dedd98f0395266b43ac69ee3b794f2414095e0d23232d6ec3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/5.1.0 CPython/3.12.3
|
Release files / muttdown-0.4.0-py3-none-any.whl
| Download URL | muttdown-0.4.0-py3-none-any.whl |
|---|---|
| Size | 8.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
0c9c9fa5721da9477a5b16f3622a9cd2f48198c0661c40c8c68d12fbcd63c78c
|
|
BLAKE2b-256 checksum How to use checksums |
9db7405d3fa0558f1b1c08f41b07699b0980417c629b699beb8584c89ad28aee
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/5.1.0 CPython/3.12.3
|
Security for muttdown 0.4.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.