{ "info": { "author": "James Brown", "author_email": "Roguelazer@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Environment :: Console", "Intended Audience :: End Users/Desktop", "License :: OSI Approved :: ISC License (ISCL)", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Topic :: Communications :: Email" ], "description": "muttdown\n========\n\n[![Build Status](https://travis-ci.com/Roguelazer/muttdown.svg?branch=master)](https://travis-ci.com/Roguelazer/muttdown)\n\n`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.\n\nIt's also smart enough not to break `multipart/signed`.\n\nFor example, the following tree before parsing:\n\n - multipart/mixed\n |\n -- multipart/signed\n |\n ---- text/markdown\n |\n ---- application/pgp-signature\n |\n -- image/png\n\nWill get compiled into\n\n - multipart/mixed\n |\n -- multipart/alternative\n |\n ---- text/html\n |\n ---- multipart/signed\n |\n ------ text/markdown\n |\n ------ application/pgp-signature\n |\n -- image/png\n\n\nConfiguration\n-------------\nMuttdown's configuration file is written using [YAML][]. Example:\n\n smtp_host: smtp.gmail.com\n smtp_port: 587\n smtp_ssl: false\n smtp_username: foo@bar.com\n smtp_password: foo\n css_file: ~/.muttdown.css\n\n\nIf 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\":\n\n smtp_password_command: security find-generic-password -w -s mutt -a foo@bar.com\n\nNOTE: 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.\n\nThe `css_file` should be regular CSS styling blocks; we use [pynliner][] to inline all CSS rules for maximum client compatibility.\n\nMuttdown 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\n\nInstallation\n------------\nInstall 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`.\n\nUsage\n-----\nInvoke as\n\n muttdown -c /path/to/config -f \"from_address\" -- \"to_address\" [more to addresses...]\n\nSend a RFC822 formatted mail on stdin.\n\nIf the config path is not passed, it will assume `~/.muttdown.yaml`.\n\n\n\n\n[Markdown]: http://daringfireball.net/projects/markdown/\n[YAML]: http://yaml.org\n[PyYAML]: http://pyyaml.org\n[Python-Markdown]: https://pypi.python.org/pypi/Markdown\n[mutt]: http://www.mutt.org\n[pynliner]: https://github.com/rennat/pynliner", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/Roguelazer/muttdown", "keywords": "email", "license": "ISC", "maintainer": "", "maintainer_email": "", "name": "muttdown", "package_url": "https://pypi.org/project/muttdown/", "platform": "", "project_url": "https://pypi.org/project/muttdown/", "project_urls": { "Homepage": "https://github.com/Roguelazer/muttdown" }, "release_url": "https://pypi.org/project/muttdown/0.3.4/", "requires_dist": null, "requires_python": "", "summary": "Sendmail replacement that compiles markdown into HTML", "version": "0.3.4" }, "last_serial": 4798376, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "4694c3fb28179bac463ac3c51ba4c886", "sha256": "1a29672e8814b0f5192c546b93a6483dddc73835c6aba143cafaee40d9abded8" }, "downloads": -1, "filename": "muttdown-0.1.tar.gz", "has_sig": false, "md5_digest": "4694c3fb28179bac463ac3c51ba4c886", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5790, "upload_time": "2015-05-06T23:25:06", "url": "https://files.pythonhosted.org/packages/66/38/a797205a6f84c83c88a57d47e159ee6ae04250374f8ca150cd39474cb570/muttdown-0.1.tar.gz" } ], "0.2": [ { "comment_text": "", "digests": { "md5": "ec6fd46c00ab52f4d7916da5c994a80b", "sha256": "a2a11ba6290cc575e3c0fcc22cbbeeed0a7e8d1b3911e35850e3856aa5093b39" }, "downloads": -1, "filename": "muttdown-0.2.tar.gz", "has_sig": false, "md5_digest": "ec6fd46c00ab52f4d7916da5c994a80b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6607, "upload_time": "2015-07-13T16:29:50", "url": "https://files.pythonhosted.org/packages/05/c7/8bd45afae698a270fafb0ab926a2ad886161bf14897f33317aa004e7abce/muttdown-0.2.tar.gz" } ], "0.3": [ { "comment_text": "", "digests": { "md5": "7e94ae818a86ac553634178388bce322", "sha256": "77c7770c229ca77947ba9b95cb45a21d3a34632c616e7960e6fb1154ba911917" }, "downloads": -1, "filename": "muttdown-0.3-py2-none-any.whl", "has_sig": false, "md5_digest": "7e94ae818a86ac553634178388bce322", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 5764, "upload_time": "2018-09-13T15:04:44", "url": "https://files.pythonhosted.org/packages/c0/f2/1727128fa22bf9196e85d1e462a0796b590b20cafd567a70c787c11906ae/muttdown-0.3-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b98b034653c154be9243cdcf44fe0bf3", "sha256": "a6dedf2cc237066caaea98977d77dc44aa5486b96ed003bcd4aa6849092f6b09" }, "downloads": -1, "filename": "muttdown-0.3-py3-none-any.whl", "has_sig": false, "md5_digest": "b98b034653c154be9243cdcf44fe0bf3", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 5762, "upload_time": "2018-09-13T15:04:46", "url": "https://files.pythonhosted.org/packages/86/24/8f28257027a79d12db52e01f351c47ab0a512cd097a8e8f00eed3892b05a/muttdown-0.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "88d9dae2e4915f3d967078e08853a3b3", "sha256": "8384095dc51bd762d29f321d43bfbcf03b95a231049b2db9dcf6303a89aa48f7" }, "downloads": -1, "filename": "muttdown-0.3.tar.gz", "has_sig": false, "md5_digest": "88d9dae2e4915f3d967078e08853a3b3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6578, "upload_time": "2018-09-13T15:04:47", "url": "https://files.pythonhosted.org/packages/3c/0d/b749dc4474e3844b9d7a378a239ec178e1e14ff5681376d94729393d6ba3/muttdown-0.3.tar.gz" } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "3c0bf75b838a762f3adeac32ae46144e", "sha256": "83d0fe6722b4c973ddc6ada08efb9ba8821cc2f41ed9f9befab98a520372ddaa" }, "downloads": -1, "filename": "muttdown-0.3.1-py2-none-any.whl", "has_sig": false, "md5_digest": "3c0bf75b838a762f3adeac32ae46144e", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 5803, "upload_time": "2018-09-21T19:09:12", "url": "https://files.pythonhosted.org/packages/ef/b8/c9a8659fd8e82091ba7210b89ed21867afaf95049e0246878ff65c7db6e7/muttdown-0.3.1-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "164a5fe43a3f2c639c5879c8f16e231c", "sha256": "dea7047dc1685b006e8a53d5a5b4ba25582acf86a5cbb01758fbea84826138eb" }, "downloads": -1, "filename": "muttdown-0.3.1-py3-none-any.whl", "has_sig": false, "md5_digest": "164a5fe43a3f2c639c5879c8f16e231c", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 5804, "upload_time": "2018-09-21T19:09:13", "url": "https://files.pythonhosted.org/packages/e5/bd/7081ce15ad5283ff37c1b09b75d5027a2f81faafda5104f06d3cb4008feb/muttdown-0.3.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "3eab75ed2dc8481284970f21b635e7ef", "sha256": "98a519ba81f2447f60ecd61e0f7435d0bf9c9823a6fe88b225433b40bc9cf288" }, "downloads": -1, "filename": "muttdown-0.3.1.tar.gz", "has_sig": false, "md5_digest": "3eab75ed2dc8481284970f21b635e7ef", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6619, "upload_time": "2018-09-21T19:09:15", "url": "https://files.pythonhosted.org/packages/8b/8d/b7b6d1bc03314b959c75ceb393d184bfda88dbe4881a0743af6bcad96c9d/muttdown-0.3.1.tar.gz" } ], "0.3.2": [ { "comment_text": "", "digests": { "md5": "02f8400709228fa517b37ed61b95012f", "sha256": "1ca766556494c6f94444ed98e61a652004328e5539abc1153c0cb3ef2c402508" }, "downloads": -1, "filename": "muttdown-0.3.2-py2-none-any.whl", "has_sig": false, "md5_digest": "02f8400709228fa517b37ed61b95012f", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 5821, "upload_time": "2018-10-23T03:40:40", "url": "https://files.pythonhosted.org/packages/69/6d/acbe477cd3c42b44d3055d05f6c9e8736da93f7ba43c11c51d42d5937a03/muttdown-0.3.2-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9c6a9612465fc200a29efd58d0d74abd", "sha256": "62e584b3d48d59bb9a9aa20298d23caf12656679c207305ac4fb9018359a0012" }, "downloads": -1, "filename": "muttdown-0.3.2-py3-none-any.whl", "has_sig": false, "md5_digest": "9c6a9612465fc200a29efd58d0d74abd", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 5821, "upload_time": "2018-10-23T03:40:42", "url": "https://files.pythonhosted.org/packages/c0/b8/679d1cdefa5a2f6bc697a521125f66849fa01e893c43074d47573b95065c/muttdown-0.3.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "440fcbffb2c151158f901f4cd8818ec6", "sha256": "c45460ec7615583b32556dc98361391de8faff5d5364863bf56842730cb5743f" }, "downloads": -1, "filename": "muttdown-0.3.2.tar.gz", "has_sig": false, "md5_digest": "440fcbffb2c151158f901f4cd8818ec6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6713, "upload_time": "2018-10-23T03:40:43", "url": "https://files.pythonhosted.org/packages/07/26/d82a73a08981fd89d7bd26d0e2e9485ba865d2b0d98e2402c51a25014f9c/muttdown-0.3.2.tar.gz" } ], "0.3.3": [ { "comment_text": "", "digests": { "md5": "8e061204ec84323e11c64fce499daa4f", "sha256": "01e898b14b97bd07522ab77a65772ef110c78b8959c62c0e399d1e8ae2a2a9de" }, "downloads": -1, "filename": "muttdown-0.3.3-py2-none-any.whl", "has_sig": false, "md5_digest": "8e061204ec84323e11c64fce499daa4f", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 7182, "upload_time": "2018-12-27T21:50:31", "url": "https://files.pythonhosted.org/packages/3a/cc/82d203471fca3fc68356954dcdb67547ba08976b2aa72e84ffb1151c2494/muttdown-0.3.3-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "5d1728fdefd8c6565c93ddade78e7d01", "sha256": "5d70d3c4d14eaf09ff8b7e771da9ed1739d5de1010e6a5f3a2103729613edb12" }, "downloads": -1, "filename": "muttdown-0.3.3-py3-none-any.whl", "has_sig": false, "md5_digest": "5d1728fdefd8c6565c93ddade78e7d01", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7181, "upload_time": "2018-12-27T21:50:32", "url": "https://files.pythonhosted.org/packages/23/ed/c1c29d06a02fc9652baf56bddc9a6095a4478d87a38fe81f369d75726c00/muttdown-0.3.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "67cf2d65ecc965ff9be512da39bf01d9", "sha256": "c94cc96e5df92c840395ef7b3848c35e69e552e4363a70194b128b68a36b3152" }, "downloads": -1, "filename": "muttdown-0.3.3.tar.gz", "has_sig": false, "md5_digest": "67cf2d65ecc965ff9be512da39bf01d9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7100, "upload_time": "2018-12-27T21:50:33", "url": "https://files.pythonhosted.org/packages/a8/d2/7df2b02e179cf833f3175d73d6c49707361729464164bfc49f5fa709738a/muttdown-0.3.3.tar.gz" } ], "0.3.4": [ { "comment_text": "", "digests": { "md5": "25ff5cd81028281cdb636fc79670b2c0", "sha256": "8e4fa4537ee94d953165bbeb9b72b576ca135859b741011e204214697bc96b56" }, "downloads": -1, "filename": "muttdown-0.3.4.tar.gz", "has_sig": false, "md5_digest": "25ff5cd81028281cdb636fc79670b2c0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7275, "upload_time": "2019-02-09T04:18:11", "url": "https://files.pythonhosted.org/packages/19/a0/da21992a4fadc6f70ca7824d981c3545b8eb88c00aa70fa6ee56e93353e6/muttdown-0.3.4.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "25ff5cd81028281cdb636fc79670b2c0", "sha256": "8e4fa4537ee94d953165bbeb9b72b576ca135859b741011e204214697bc96b56" }, "downloads": -1, "filename": "muttdown-0.3.4.tar.gz", "has_sig": false, "md5_digest": "25ff5cd81028281cdb636fc79670b2c0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7275, "upload_time": "2019-02-09T04:18:11", "url": "https://files.pythonhosted.org/packages/19/a0/da21992a4fadc6f70ca7824d981c3545b8eb88c00aa70fa6ee56e93353e6/muttdown-0.3.4.tar.gz" } ] }