SMTP: проблема новой строки - PullRequest
0 голосов
/ 30 апреля 2010

Я отправляю строку как сообщение через SMTP. Но в итоговом письме не учитываются вкладки и переводы строк. В чем может быть проблема Заранее спасибо

Ответы [ 2 ]

3 голосов
/ 30 апреля 2010

Попробуйте добавить следующий заголовок:

Mime-Type: text/plain

Это позволит большинству читателей электронной почты сохранить пробелы без изменений, и большую часть времени применяет шрифт фиксированной ширины.

Если вы уже используете почту HTML, инкапсулирование всего внутри должно сделать это. Или, если вы в CSS, вы можете сделать <div style="white-space: pre;">...</div>.

Кроме того, убедитесь, что то, что вы отправляете через сервер, имеет \r\n (0x0D, 0x0A) окончания строк, а не только \n (UNIX) или \r (Mac).

3 голосов
/ 30 апреля 2010

Я предполагаю, что вы отправляете почту в формате HTML, и в этом случае пробелы, табуляции и новые строки будут свернуты в один пробел.

Вам потребуется преобразовать вкладки в &nbsp; или аналогичные и заменить новые строки тегами <br> (или обернуть абзацы тегами <p>).

В качестве альтернативы, вы можете отправить письмо в виде обычного текста, и эти символы будут сохранены:

var mail = new MailMessage();
mail.IsBodyHtml = false;
...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...