在python控制台中格式化电子邮件

时间:2014-01-24 18:03:22

标签: python html jinja2

我正在使用jinja2通过电子邮件发送字符串。我已经完成了所有工作,除了我无法弄清楚如何在控制台中打印出该字符串时保持相同的格式。

我在控制台中获得的字符串就是这个字符串:

TAF LEVX 241700Z 2418/2518 23009KT 3000 -DZ BR BKN010 BKN020 TX11/2514Z TN08/2506Z 
  TEMPO 2418/2518 1200 -DZ BCFG BKN004 
  TEMPO 2418/2518 0800 DZ BCFG 
  TEMPO 2418/2518 0350 FG BKN003 PROB30 
  TEMPO 2418/2518 30010KT 7000 NSW BKN020 
  TEMPO 2418/2518 0150 FG BKN001

但是,当我添加

<p></p> 

我收到所有附加行的电子邮件,如:

TAF LEVX 241700Z 2418/2518 23009KT 3000 -DZ BR BKN010 BKN020 TX11/2514Z TN08/2506Z TEMPO     2418/2518 1200 -DZ BCFG BKN004 TEMPO 2418/2518 0800 DZ BCFG TEMPO 2418/2518 0350 FG BKN003 PROB30 TEMPO 2418/2518 30010KT 7000 NSW BKN020 TEMPO 2418/2518 0150 FG BKN001

毋庸置疑,我不是jinja2或HTML的专家,这就是我寻求帮助的原因。

有没有简单的方法来保持格式?

非常感谢!

2 个答案:

答案 0 :(得分:2)

<p style="white-space: pre">怎么样?这应该保留您原来的格式。或者,为了清楚起见,只需使用<pre></pre>代替<p></p>

答案 1 :(得分:1)

好的,所以我终于找到了答案。

事实证明,我必须使用两个建议的解决方案才能做到正确:

  1. 首先我必须通过

    替换字符串
    .replace("\n", "<br />")
    

    要回答sundance的回复中讨论的内容,必须是<br />,因为</br>不起作用(至少在发送html电子邮件时)。

    这基本上创建了新行,没有缩进。

  2. 为了使缩进正确,我们需要按照RobertT的建议使用<pre></pre>(但仅在应用第一点之后,因为我们没有得到行返回)。

  3. 再次感谢大家的帮助!

    编辑:我正在使用jinja2输出HTML,Mailgun发送电子邮件,我正在使用Gmail帐户进行测试。