Newline showing up on screen but not in email

2019-04-22 21:02发布

I have a list (errors) that I both print to the screen and send in the body of an email. But first I separate the elements of the list with a newline character:

"\n".join(errors)

I then print it to the console and send it as an email. On the console it appears delimited by newlines:

Error generating report
Another error

In the email, however, they fail to show...

Error generating report Another error

What's going on?

Edit:

To further complicate things, I just noticed that 2 emails are sent, one of which displays the newline and one of which doesn't!

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)

The first does have them while the second doesn't. Is this because of the html formatting in the second...?

4条回答
爷、活的狠高调
2楼-- · 2019-04-22 21:19

If your email is HTML formatted then that would affect presentation of newlines.

查看更多
Lonely孤独者°
3楼-- · 2019-04-22 21:20

For this type of problem, I find that looking at the native code in the eMail helps greatly. I use Eudora for this since it stores all of the eMail in native text format. I'm able to look at the formatting without having it browsed by the eMail client by opening the email mailbox in Notepad or some other text editor. If you're in a UNIX environment, it might be better to look at it in vi or another basic text editor.
All eMail is pure text and it is converted to what you see by the eMail client.

查看更多
聊天终结者
4楼-- · 2019-04-22 21:35

Are you reading the e-mail in Outlook? Outlook will strip "extra line breaks" (that is, those line breaks it deems unnecessary by some arcane rule) from plain text mail. To get around this, I convert mail such as logs to HTML before sending it. This is very simple; just wrap it in <PRE>... </PRE> tags (with appropriate HTML headers of course).

查看更多
看我几分像从前
5楼-- · 2019-04-22 21:36

Two things I would try:

  • try with CRLF ("\r\n") instead of just LF

  • make sure your email is not being sent in HTML mode, or, if yes, try replacing the "\n" with "<br>"

查看更多
登录 后发表回答