Newline出现在屏幕上,但不在emai中

2024-09-26 22:51:53 发布

您现在位置:Python中文网/ 问答频道 /正文

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

"\n".join(errors)

然后我将其打印到控制台并以电子邮件的形式发送。在控制台上,它以换行符分隔:

Error generating report
Another error

然而,在电子邮件中,他们没有显示。。。

Error generating report Another error

怎么了?

编辑:

更复杂的是,我注意到有人发了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)

第一个有,而第二个没有。这是因为第二个…中的html格式吗。。。?


Tags: reportsupport列表屏幕address电子邮件emailhtml
3条回答

你正在用Outlook阅读电子邮件吗?Outlook将从纯文本邮件中删除“多余的换行符”(也就是某些神秘规则认为不必要的换行符)。为了解决这个问题,我在发送之前将日志之类的邮件转换为HTML。这很简单;只需将其包装在<;PRE>;中即可;。。。<;/PRE>;标记(当然有适当的HTML标题)。

如果您的电子邮件是HTML格式的,那么这将影响换行的显示。

我会尝试两件事:

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

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

相关问题 更多 >

    热门问题