如何格式的一串在一封电子邮件,以便Outlook将印刷线路休息吗?
-
02-07-2019 - |
题
我想发一封电子邮件在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
似乎没有一个简单的解决方案。替代方案是:
- 您可以在每行之间提供两个换行符。这确实会阻止Outlook将行组合到一行上,但它会在每行之间显示一个额外的空行(产生相反的问题)。通过<!>提供两组换行符<!>我的意思是你应该使用<!>“; \ r \ n \ r \ n <!>;或<!>“; \ r \ n <!>”;或<!> \ n; \ n \ n <!>但不是<!> \ n; \ r \ n <!>;或<!> quot; \ n \ r <!>;。
- 您可以在电子邮件正文的每一行的开头提供两个空格。这避免了在每一行之间引入额外的空白行。但是如果你的消息中的每一行都相当短,那么这种方法效果最好,因为用户可能正在一个非常狭窄的Outlook窗口中预览文本,该窗口将每行的末尾包裹到下一行的第一个位置,在那里它不会与你的两个空格缩进的行对齐。此策略已用于某些 newsletters 。
- 您可以放弃使用纯文本格式,并使用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会为您提供换行符。例如,
<a href="mailto:someone@gmail.com?Subject=TEST&amp;body=Hi there,%0A%0AHow are you?%0A%0AThanks">email to me</a>
诀窍是使用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/>
我也有普通/文本邮件类型的问题。早些时候,我使用了<!>“; \ 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;向下滚动到“消息格式”取消选中该复选框。