将标记编译为HTML的Sendmail替换

muttdown的Python项目详细描述


低声说

Build Status

muttdown是一个sendmail替换程序,设计用于mutt电子邮件客户端,该客户端将使用Markdown标准透明地将带注释的text/plain邮件编译成text/html。它将递归地遍历mime树并编译任何以sigil开头的text/plaintext/markdown部分!在标记中插入m“,它将在多部分/可选容器中与原件一起插入。

它还足够聪明,不会破坏multipart/signed

例如,解析之前的以下树:

- multipart/mixed
 |
 -- multipart/signed
 |
 ---- text/markdown
 |
 ---- application/pgp-signature
 |
 -- image/png

将编译成

- multipart/mixed
 |
 -- multipart/alternative
 |
 ---- text/html
 |
 ---- multipart/signed
 |
 ------ text/markdown
 |
 ------ application/pgp-signature
 |
 -- image/png

配置

muttdown的配置文件是使用YAML编写的。示例:

smtp_host: smtp.gmail.com
smtp_port: 587
smtp_ssl: false
smtp_username: foo@bar.com
smtp_password: foo
css_file: ~/.muttdown.css

如果不希望在配置文件中以明文形式输入密码,可以指定smtp_password_command参数来调用shell命令来查找密码。该命令应该输出您的密码,后跟换行符,而不是其他文本。在os x上,以下调用将提取一个通用的“password”条目,应用程序设置为“mutt”,标题设置为“foo@bar.com”:

smtp_password_command: security find-generic-password -w -s mutt -a foo@bar.com

注意:如果smtp_ssl设置为false,则muttdown将执行非ssl会话,然后调用STARTTLS。如果smtp_ssl设置为true,则muttdown将从一开始就执行ssl会话。不能用明文发送邮件。

<^ > ^ {CD13>}应该是常规CSS样式块;我们使用pynliner来内嵌所有CSS规则以获得最大的客户端兼容性。

如果设置了muttdown,它还可以使用本机sendmail发送邮件(而不是使用smtp本身)。为此,只需将配置文件中的smtp选项留空,将sendmail选项设置为指向sendmail二进制文件的完全限定路径,并使用-s标志运行muttdown

安装

使用pip install muttdown或通过下载此包并运行python setup.py install来安装muttdown。您将需要在requirements.txt中指定的PyYAMLPython-Markdown库。

用法

调用为

muttdown -c /path/to/config -f "from_address" -- "to_address" [more to addresses...]

在stdin上发送一封rfc822格式的邮件。

如果未传递配置路径,则将假定为~/.muttdown.yaml

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java JPA。Eclipselink没有为mySQL提供密码,但它应该提供   我的Servlet和@FormDataParam存在java问题   java将什么作为上下文参数传递到文件I/O方法中?   如果两个值相同,java无法找到其中一个单选按钮   java在变量和方法名中使用下划线   JavaSpringMVC单线程安全?   klazz类的java Arraylist(反射Api)   java如何在数字字符串中查找最频繁的数字?   JavaAPI设计:使数据更易于阅读与强制更多API调用   JavaHadoopMapReduceforGoogleWebGraph   java无法启动gauge API:Runner意外退出   java如何在bluemix上使用ibm工作负载调度器?   拉取一年中某一周特定日期的所有日期   java为什么是我的角节点。js应用程序将图像上传到S3� 邮递员正确上传时的符号?   在不使用任何第三方jar的情况下将文件从本地传输到linux系统(java代码)   java将现有文件夹复制到Eclipse工作区中新创建的项目中   Java中的regex RegExp帮助   当使用“系统”外观时,Java组合框setSelectedItem会出现故障   JavaASM:在类的方法中获取局部变量名和值