Новая строка появляется на экране, но не в электронной почте

У меня есть список ( ошибок ), который я одновременно печатаю на экране и отправляю в теле письма. Но сначала я разделяю элементы списка с помощью символа новой строки:

"\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 во втором ...?

8
задан froadie 26 August 2010 в 18:16
поделиться

4 ответа

Если ваше электронное письмо имеет формат HTML, это повлияет на отображение новых строк.

12
ответ дан 5 December 2019 в 05:44
поделиться

Для такого типа проблем я считаю, что просмотр собственного кода в электронной почте очень помогает. Я использую для этого Eudora, так как он хранит всю электронную почту в собственном текстовом формате. Я могу просмотреть форматирование без его просмотра клиентом электронной почты, открыв почтовый ящик электронной почты в Блокноте или другом текстовом редакторе. Если вы работаете в среде UNIX, возможно, лучше просмотреть ее в vi или другом базовом текстовом редакторе.
Вся электронная почта представляет собой чистый текст, и он преобразуется в то, что вы видите, с помощью клиента электронной почты.

0
ответ дан 5 December 2019 в 05:44
поделиться

Я бы попробовал две вещи:

  • попробуйте использовать CRLF ("\r\n"), а не просто LF

  • убедитесь, что ваша электронная почта не отправляется в режиме HTML, или, если да, попробуйте заменить "\n" на "
    "

11
ответ дан 5 December 2019 в 05:44
поделиться

Вы читаете электронную почту в Outlook? Outlook удалит «лишние разрывы строк» (то есть те разрывы строк, которые он сочтет ненужными по какому-то тайному правилу) из обычной текстовой почты. Чтобы обойти это, я преобразую почту, такую как журналы, в HTML перед ее отправкой. Это очень просто; просто оберните его в

... 
теги (с соответствующими заголовками HTML, конечно).

6
ответ дан 5 December 2019 в 05:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: