我如何在电子邮件格式的字符串,以便Outlook将打印换行?(How do I format a S

2019-06-21 08:36发布

我试图发送Java中的电子邮件,但是当我在Outlook中阅读电子邮件的正文中,它摆脱了我所有的换行的。 我把\ n在线路的两端,但有一些特别的东西,我需要比做其它? 接收器总是会使用Outlook。

我发现在microsoft.com的网页说,有一个在Outlook中“删除断行”“功能”那么,这是否意味着没有解决要解决的是,除了取消选中该设置?

谢谢

Answer 1:

您需要使用\r\n作为解决方案。



Answer 2:

我刚刚在战斗这个今天。 让我们把去除多余的换行符的行为“的延续。” 一个小实验发现以下行为:

  • 每封邮件与延续关闭开始。
  • 行少于40个字符长的不触发延续,但如果继续是,它们有自己的换行符删除。
  • 行40个字符或更长的上转的延续。 直到事件发生时将其关闭它仍然上。
  • 以周期结束线,问号,感叹号或结肠转弯继续关闭。 (展望假定它是一个句子的末尾?)
  • 该回合继续关闭线将与换行符启动,但会继续后退,如果他们是超过40个字符。
  • 该开头或片翻延续断终止线。
  • 与2个或多个空格开头的行转续断。
  • 与3个或多个空格结束线转动继续关闭。

请注意,我想这一切与Outlook 2007因人而异。
所以,如果有可能,结束与一个句子终止标点,一个标签,甚至三个空格所有子弹的物品。



Answer 3:

只是换行(CRLF)之前将一个(或两个?),制表符(\ t)时,您可以强制Outlook中的换行符。

例:

This is my heading in the mail\t\n
Just here Outlook is forced to begin a new line.

这似乎在Outlook 2010中的工作,请测试,如果这个工程上的其他版本。

另请参见展望自动清洗我换行和搞砸了我的电子邮件格式



Answer 4:

Microsoft Outlook 2002和以上默认将删除短信“多余的换行符” (kb308319) 。 即,前景似乎简单地忽略在短信线进料和/或回车序列,运行所有的线到一起。

如果你想编写代码,会自动生成,以通过使用Outlook的人来阅读电子邮件信息这可能会导致问题。

例如,假设你要提供的单独的一行,清晰,这样每个信息独立的部分:

交易需要注意!
PostedDate:2009年1月30日
金额:$ 12,222.06
TRANSID:8gk288g229g2kg89
邮政编码:91543

您的Outlook收件人将看到所有一起捣烂的信息,如下所示:

交易需要注意! PostedDate:2009年1月30日金额:$ 12,222.06 TRANSID:8gk288g229g2kg89邮编:91543

似乎没有成为一个简单的解决方案。 替代方案是:

  1. 您可以提供两套各线之间的换行符。 但这从线组合到一个线停止的Outlook,但它然后显示各线之间的额外的空行(创建相反的问题)。 通过 “供应两套换行符” 我的意思是,你应该使用 “\ r \ n \ r \ n” 或 “\ r \ R” 或 “\ n \ n”,而不是 “\ r \ n” 或“\ n \ r”。
  2. 你可以在你的电子邮件的身体的每行开头提供两个空格。 这避免了引入每行之间的额外的空行。 但是,如果在您的邮件每一行是相当短的这部作品最好的,因为用户可以预览在一个非常狭窄的Outlook窗口周围包裹每一行的结束到下一行,第一个位置的文本,它不会与你的两个空间,缩进线排队。 这种策略已经被用于一些通讯 。
  3. 您可以使用纯文本格式放弃,并使用HTML格式。


Answer 5:

我有同样的问题,并找到了解决办法。 试试这个: %0D%0A增加一个换行符。



Answer 6:

我已经使用HTML换行,而不是“\ n”。 它工作得很好。



Answer 7:

添加 “\ t \ r \ n”(\ t表示TAB),而不是 “\ r \ n” 为我上的Outlook 2010。 注:在每行的末尾添加3个空格也在做同样的事情,但看起来像一个编程劈!



Answer 8:

您需要发送HTML电子邮件。 随着<br />在电子邮件S,你将永远有你的换行符。



Answer 9:

我一直努力与所有上述解决方案,并没有什么帮助这里的,因为我在“text / html的”在我的电子邮件库格式结合使用一个字符串变量(从JTextPane的纯文本)。

因此,解决这个问题的方法是使用“text / plain的”,而不是“text / html的”,没有必要在所有更换返回字符:

MimeBodyPart messageBodyPart = new MimeBodyPart();
messageBodyPart.setContent(message, "text/plain");


Answer 10:

放于文本<pre>标签和前景将格式化并正确地显示的文字。

我在HTML CSS机身内嵌定义它喜欢:

CSS:

pre {
 font-family: Verdana, Geneva, sans-serif;
}

我定义的字体家庭不得不字体设置。

HTML:

<td width="70%"><pre>Entry Date/Time:       2013-09-19 17:06:25
Entered By:     Chris

worklog mania

____________________________________________________________________________________________________

Entry Date/Time:        2013-09-19 17:05:42
Entered By:     Chris

this is a new Worklog Entry</pre></td>


Answer 11:

因为它是一个查询,只有百分之转义字符工作,意味着%0A给你一个换行符。 例如,

&lt;a href=&quot;mailto:someone@gmail.com?Subject=TEST&amp;amp;body=Hi there,%0A%0AHow are you?%0A%0AThanks&quot;&gt;email to me&lt;/a&gt;


Answer 12:

诀窍是使用encodeURIComponent()从JS功能:

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

结果:

FirstLine
SecondLine
ThirdLine


Answer 13:

对于Outlook 2010及更高版本,使用\ t \ n,而不是使用\ r \ n。



Answer 14:

解决了我的申请

在我的申请,我试图发送一封电子邮件,其消息体是由在文本区域的用户输入。 当邮件被发送,Outlook会自动删除换行符由用户输入。

例如,如果用户输入
亚达夫
马赫什

Outlook中显示它
YadavMahesh

分辨率:我改变了换行符“\ r \ n”和“\看齐”(记得RTF代码“\看齐”末打空间),换行符restrored。

干杯,
马赫什



Answer 15:

如果你能在添加“” 在每行的结尾(点)字符,这似乎阻止Outlook破坏文本格式。



Answer 16:

试试这个:

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

问候,穆罕默德·拉苏尔Javeed



Answer 17:

尝试\r\c ,而不是\n

编辑:我觉得@Robert威尔金森说得对。 \r\n 。 内存只是是不是它曾经是。



Answer 18:

\n很大程度上为我们工作,但展望有时确实承担起自己作为你说的删除换行符。



Answer 19:

我有我试了一个很好的解决方案,它只是在像下面的示例行的末尾添加CHAR(13):

Dim S As String
 S = "Some Text" & Chr(13)
 S = S + "Some Text" & Chr(13)


Answer 20:

如果消息是文本/无格式使用,\ r \ n应工作; 如果消息类型是文本\ HTML中,使用< p/>



Answer 21:

这一定是对你有帮助。 试试 “%0A” 而不是 “\ n”。 真正的来源是在这里。

您需要添加“%0A”在任何你需要在你的代码的新线。 你的情况

 abcParameters.put(defConstants.REPORT_MESSAGE, "Invalid file sent by tt. Hence ffgghh  was unable
              to process it : " + s+ "%0A" +e.getMessage().toString());


Answer 22:

我还与纯/文本邮件类型这个问题。 此前,我用“\ n \ n”但有两个线路中断。 然后,我用“\ t \ n”和它的工作。 我使用StringBuffer在Java中追加内容。
内容得到了印在Outlook 2010中的邮件下一行。



Answer 23:

我也有这个问题与纯/文本邮件type.Form饲料\f为我工作。



Answer 24:

有时候,你必须输入\ r \ n两次强制Outlook做休息。

这将添加一个空行,但所有的行都会有突破。



Answer 25:

如果工作需要可以与出HTML编码格式的文本进行。 可以用下面的那个场景中轻松实现对飞创建div元素 ,并使用<pre></pre> HTML元素保持格式。

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

 function htmlEncode(value) {
    return "<pre>" + $('<div/>').text(value).html() + "</pre>";
}


Answer 26:

\ r \ n将无法正常工作,直到你设定的身型为文本。

message.setBody(MessageBody.getMessageBodyFromText(msg));
BodyType type = BodyType.Text;
message.getBody().setBodyType(type);


Answer 27:

不知道是否是上面所提到的,但展望有一个设置名为复选框,“以纯文本格式邮件中删除多余的换行符”,并默认选中。 它坐落在一个不同的斑点为不同版本的Outlook,但在2010年进入“文件”选项卡。 选择“选项=>邮件”向下滚动到“消息格式”取消选中的复选框。



文章来源: How do I format a String in an email so Outlook will print the line breaks?