Как отформатировать строку в электронном письме, чтобы Outlook печатал разрывы строк? - PullRequest
66 голосов
/ 26 сентября 2008

Я пытаюсь отправить электронное письмо на Java, но когда я читаю основную часть письма в Outlook, оно избавляется от всех моих разрывов строк. Я ставлю \ n на концах строк, но есть ли что-то особенное, что мне нужно сделать, кроме этого? Получатели всегда будут использовать Outlook.

Я нашел страницу на microsoft.com, на которой написано, что в Outlook есть функция «Удалить разрывы строк», так значит ли это, что нет другого решения, кроме как отменить проверку этого параметра?

Спасибо

Ответы [ 27 ]

1 голос
/ 02 июня 2015

Для Outlook 2010 и более поздних версий используйте \ t \ n вместо \ r \ n.

1 голос
/ 26 декабря 2016

\ r \ n не будет работать, пока вы не установите тип текста в качестве текста.

message.setBody(MessageBody.getMessageBodyFromText(msg));
BodyType type = BodyType.Text;
message.getBody().setBodyType(type);
1 голос
/ 26 сентября 2014

Хитрость заключается в использовании функциональности encodeURIComponent() из js:

var formattedBody = "FirstLine \n Second Line \n Third Line";
var mailToLink = "mailto:x@y.com?body=" + encodeURIComponent(formattedBody);

РЕЗУЛЬТАТ:

FirstLine
SecondLine
ThirdLine
1 голос
/ 26 сентября 2008

Вам необходимо отправить HTML-письма. С <br /> s в электронном письме у вас всегда будут разрывы строк.

0 голосов
/ 27 августа 2013

У меня также была эта проблема с обычным / текстовым типом почты. Ранее я использовал "\ n \ n", но было два переноса строк. Затем я использовал "\ t \ n", и это сработало. Я использовал StringBuffer в Java для добавления контента.
Содержание было напечатано в следующей строке в почте Outlook 2010.

0 голосов
/ 26 сентября 2008

\n в основном работает для нас, но Outlook иногда берет на себя задачу удалить разрывы строк, как вы говорите.

0 голосов
/ 22 октября 2015

, если необходимо выполнить форматированный текст без HTML-кодировки. это может быть легко достигнуто с помощью следующего сценария: создает элемент div на лету и использует элемент html для продолжения форматирования.

<code>var email_body = htmlEncode($("#Body").val());

 function htmlEncode(value) {
    return "<pre>" + $('<div/>').text(value).html() + "
"; }
0 голосов
/ 30 декабря 2010

РАЗРЕШЕНО В МОЕЙ ЗАЯВКЕ

В моем приложении я пытался отправить электронное письмо, текст сообщения которого был набран пользователем в текстовой области. Когда почта была отправлена, Outlook автоматически удалил разрыв строки, введенный пользователем.

например, если пользователь ввел
Ядав
Махеш

outlook отобразил его как
YadavMahesh

Разрешение: Я изменил символ разрыва строки "\ r \ n" на "\ par" (не забудьте пробить пробел в конце кода RTF "\ par"), и разрывы строки будут восстановлены.

Cheers,
Махеш

0 голосов
/ 01 декабря 2009

Попробуйте это:

message.setContent(new String(body.getBytes(), "iso-8859-1"),
                    "text/html; charset=\"iso-8859-1\"");

С уважением, Мохаммад Расул Джавид

0 голосов
/ 13 ноября 2014

У меня также была эта проблема с обычным / текстовым типом почты. Форм подачи \f работал для меня.

...