【问题标题】:Dynamically create text alternative emails [duplicate]动态创建文本替代电子邮件[重复]
【发布时间】:2014-06-03 04:33:24
【问题描述】:

我使用jinja2 模板引擎来创建HTML 电子邮件及其纯文本替代方案,然后我使用Sendgrid 发送出去。不幸的是,对于我懒惰的自己来说,这需要我编写和维护两个内容基本相同的独立模板,.html 文件和.txt 文件。 .txt 文件与 HTML 文件相同,但不包含 HTML 标记。

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

【问题讨论】:

  • 您需要保留此文本的某些格式吗?
  • 只是我在 HTML 本身中已有的空白换行符。

标签: python jinja2


【解决方案1】:

即使 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 格式正确,则不需要那些 &lt;pre&gt; 标记。

【讨论】:

    猜你喜欢
    • 2010-10-12
    • 1970-01-01
    • 1970-01-01
    • 2017-11-19
    • 2018-12-29
    • 2013-07-25
    • 1970-01-01
    • 1970-01-01
    • 2013-02-07
    相关资源
    最近更新 更多