У меня есть список ( ошибок
), который я одновременно печатаю на экране и отправляю в теле письма. Но сначала я разделяю элементы списка с помощью символа новой строки:
"\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 во втором ...?
Если ваше электронное письмо имеет формат HTML, это повлияет на отображение новых строк.
Для такого типа проблем я считаю, что просмотр собственного кода в электронной почте очень помогает. Я использую для этого Eudora, так как он хранит всю электронную почту в собственном текстовом формате.
Я могу просмотреть форматирование без его просмотра клиентом электронной почты, открыв почтовый ящик электронной почты в Блокноте или другом текстовом редакторе. Если вы работаете в среде UNIX, возможно, лучше просмотреть ее в vi или другом базовом текстовом редакторе.
Вся электронная почта представляет собой чистый текст, и он преобразуется в то, что вы видите, с помощью клиента электронной почты.
Я бы попробовал две вещи:
попробуйте использовать CRLF ("\r\n"
), а не просто LF
убедитесь, что ваша электронная почта не отправляется в режиме HTML, или, если да, попробуйте заменить "\n"
на "
"
Вы читаете электронную почту в Outlook? Outlook удалит «лишние разрывы строк» (то есть те разрывы строк, которые он сочтет ненужными по какому-то тайному правилу) из обычной текстовой почты. Чтобы обойти это, я преобразую почту, такую как журналы, в HTML перед ее отправкой. Это очень просто; просто оберните его в
...теги (с соответствующими заголовками HTML, конечно).