动态创建文本替代电子邮件

时间:2014-04-18 16:13:53

标签: python jinja2

我使用jinja2模板引擎创建HTML电子邮件及其明文替代方案,然后使用Sendgrid发送。不幸的是,对于我懒惰的自我,这需要我编写和维护两个具有基本相同内容的单独模板,.html文件和.txt文件。除了不包含HTML标记之外,.txt文件与HTML文件相同。

有没有办法简单地使用HTML模板,然后以某种方式动态生成txt版本,基本上只是剥离HTML标签?我知道正则表达式可以实现这一点,但我也知道实现正则表达式来处理HTML标记是众所周知的。

1 个答案:

答案 0 :(得分:0)

即使HTML被破坏,我也使用这个技巧从HTML中获取文本:

    text = get_some_html()

    import StringIO, htmllib, formatter
    io = StringIO.StringIO()
    htmllib.HTMLParser(formatter.AbstractFormatter(formatter.DumbWriter(io))).feed("<pre>"+text+"</pre>")
    text = io.getvalue()

如果您确定自己的HTML格式正确,则不需要这些<pre>代码。