我想发一封电子邮件在Java但当我读的子邮件的展望,这是摆脱所有我换行.我把 在的,但是有一些特别的东西我需要做其他的?接收器总是要被使用的前景。

我发现一个网页上microsoft.com 说有一个'删除线断'"功能"在Outlook那么这是否意味着没有解决方案得到周围的其他联合国检查设置?

感谢

有帮助吗?

解决方案

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

其他提示

我只是一直在争取与今天。让我们打电话的行为除外线突破"的延续。" 一个小小的尝试发现以下行为:

  • 每一个消息开始继续关闭。
  • 线路少于40个字符长不触发的延续,但如果继续是,他们会有他们的行符删除。
  • 行40个字或再延续。它仍然存在,直到事件发生时将其关闭。
  • 线路,结束与周期,问号,感叹号或结肠又继续关闭。(观假设这是最后的一句话?)
  • 行,把继续关闭将开始用一根线突破,但将继续回,如果他们超过40个字符。
  • 行开始或结束一项卡又继续关闭。
  • 行开始的2个或更多的空间又继续关闭。
  • 行,结束有3个或更多的空间又继续关闭。

请注意,我尝试了所有的这Outlook2007年。情况因人而异。
因此,如果可能的话,结束所有的子弹项目与一个句子中终止的标点符号,标签,或者甚至三个空间。

在换行符(CRLF)之前附加一个(或两个?)制表符(\ t)时,可以在Outlook中强制换行。

示例:

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

它似乎适用于Outlook 2010.请测试这是否适用于其他版本。

另见展望自动清理我的换行符并搞砸我的电子邮件格式

Microsoft Outlook 2002及更高版本删除了<!>“额外换行符<!>”;默认情况下,来自短信的(kb308319) 。也就是说,Outlook似乎只是忽略了文本消息中的换行和/或回车顺序,将所有行一起运行。

如果您尝试编写的代码会自动生成要由使用Outlook的人阅读的电子邮件,则可能会出现问题。

例如,假设您希望在单独的行中提供单独的信息,以便清晰起见,如下所示:

交易需要注意!
PostedDate:1/30/2009
金额:12,222.06美元 TransID:8gk288g229g2kg89
邮政编码:91543

您的Outlook收件人会看到所有信息都被粉碎在一起,如下所示:

交易需要注意! PostedDate:1/30/2009金额:$ 12,222.06 TransID:8gk288g229g2kg89 ZipCode:91543

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

  1. 您可以在每行之间提供两个换行符。这确实会阻止Outlook将行组合到一行上,但它会在每行之间显示一个额外的空行(产生相反的问题)。通过<!>提供两组换行符<!>我的意思是你应该使用<!>“; \ r \ n \ r \ n <!>;或<!>“; \ r \ n <!>”;或<!> \ n; \ n \ n <!>但不是<!> \ n; \ r \ n <!>;或<!> quot; \ n \ r <!>;。
  2. 您可以在电子邮件正文的每一行的开头提供两个空格。这避免了在每一行之间引入额外的空白行。但是如果你的消息中的每一行都相当短,那么这种方法效果最好,因为用户可能正在一个非常狭窄的Outlook窗口中预览文本,该窗口将每行的末尾包裹到下一行的第一个位置,在那里它不会与你的两个空格缩进的行对齐。此策略已用于某些 newsletters
  3. 您可以放弃使用纯文本格式,并使用html格式。

我遇到了同样的问题,并找到了解决方案。试试这个:%0D%0A添加换行符。

我使用了html换行符而不是<!> \ n; \ n <!>; 。它运作良好。

添加<!> \ n; \ t \ r \ n <!> (\ t表示TAB)而不是<!> \ n; \ r \ n <!>;在Outlook 2010上为我工作。注意:在每行的末尾添加3个空格也会做同样的事情,但这看起来像编程黑客!

您需要发送HTML电子邮件。通过电子邮件中的<br /> s,您将始终拥有换行符。

我一直在努力解决上述所有解决方案而且没有任何帮助,因为我使用了一个String变量(来自JTextPane的纯文本)和<!> quot; text / html <!> quot;在我的电子邮件库中格式化。

所以,这个问题的解决方案是使用<!> quot; text / plain <!>“;而不是<!> quot; text / html <!> quot;并且根本不需要替换返回字符:

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

将文本放入<pre>标签和outlook将格式化并正确显示文本。

我在HTML Body in CSS Body中定义它:

CSS:

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

我将font-family定义为必须设置字体。

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>

因为它是一个查询,只有百分比转义字符有效,意味着%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;

诀窍是使用js:

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

结果:

FirstLine
SecondLine
ThirdLine

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

在将正文类型设置为文本之前,

\ r \ n 将无效。

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

已解决我的申请

在我的应用程序中,我试图发送一封电子邮件,其邮件正文由用户在文本区域中键入。发送邮件时,Outlook会自动删除用户输入的换行符。

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

outlook将其显示为
YadavMahesh

分辨率:我更改了换行符<!> \ n; \ r \ n <!>与<!> \ n; \ par <!> \ quot; (记得在RTF代码的末尾点击空格<!>“\ par <!>”;)并且重新划分换行符。

干杯,结果 马赫什

如果你可以添加'。' (每个行末尾的(点)字符,这似乎可以防止Outlook破坏文本格式。

试试这个:

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

此致 Mohammad Rasool Javeed

尝试\r\c而不是\n

编辑:我认为@Robert Wilkinson说得对。 \r\n。记忆不像以前那样。

\n很大程度上适用于我们,但Outlook确实有时会自行删除换行符。

我有一个很好的解决方案,我试过它,它只是在行尾添加Char(13),如下例所示:

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

如果消息是text / plain使用,\ r \ n应该工作; 如果消息类型是text \ html,请使用< p/>

必须对您有所帮助。尝试<!>“;%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());

我也有普通/文本邮件类型的问题。早些时候,我使用了<!>“; \ n \ n <!>”;但有两个换行符。然后,我使用了<!>“; \ t \ n <!>”;它起作用了。我在java中使用StringBuffer来追加内容。
内容在Outlook 2010邮件的下一行中打印。

我也有普通/文本邮件类型的问题.Form Feed \f为我工作。

有时您必须输入两次\ r \ n才能强制Outlook进行休息。

这将添加一个空行但所有行都会中断。

如果需要使用带有html编码的格式化文本来完成工作。 使用以下方案可以轻松实现动态创建div元素并使用<代码>&lt; pre&gt;&lt; / pre&gt; html元素以保持格式化。

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

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

不确定上面是否提到过,但Outlook有一个名为“删除纯文本邮件中的额外换行符”的复选框设置。并默认选中。它位于不同版本的Outlook的不同位置,但对于2010年,请转到“文件”。标签。选择“选项=&gt;邮件&QUOT;向下滚动到“消息格式”取消选中该复选框。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top