Newline显示在屏幕上但不显示在电子邮件中

fro*_*die 8 python email newline

我有一个列表(errors),我打印到屏幕上并发送电子邮件正文.但首先我将列表的元素与换行符分开:

"\n".join(errors)
Run Code Online (Sandbox Code Playgroud)

然后我将其打印到控制台并将其作为电子邮件发送.在控制台上,它显示为换行符分隔:

Error generating report
Another error
Run Code Online (Sandbox Code Playgroud)

然而,在电子邮件中,他们无法显示......

Error generating report Another error
Run Code Online (Sandbox Code Playgroud)

这是怎么回事?

编辑:

为了使事情进一步复杂化,我只注意到发送了2封电子邮件,其中一封显示换行符,其中一封不显示!

sendEmail(SUPPORT_EMAIL_ADDRESS, "application terminated unexpectedly.", \
                   "The script will exit.\n\nError Message:\n%s" % \
                   "\n".join(errors))
sendEmail(USERS_EMAIL_ADDRESS, "report is delayed.", 
                   "\n".join(errors), 
                   "html", [], [], SUPPORT_EMAIL_ADDRESS)
Run Code Online (Sandbox Code Playgroud)

第一个确实有它们而第二个没有.这是因为第二个中的html格式......?

Eri*_*now 12

如果您的电子邮件是HTML格式的,则会影响换行符的显示.


hou*_*oft 11

我会尝试两件事:

  • 尝试使用CRLF("\r\n")而不仅仅是LF

  • 确保您的电子邮件不是以HTML模式发送的,或者,如果是,请尝试替换"\n"使用"<br>"


kin*_*all 6

你在阅读Outlook中的电子邮件吗?Outlook将从纯文本邮件中删除"额外换行符"(即,它认为某些神秘规则不必要的换行符).为了解决这个问题,我在发送之前将日志等邮件转换为HTML.这很简单; 只需将其包装在<PRE> ... </ PRE>标签中(当然使用适当的HTML标头).