我正在尝试用Java发送电子邮件,但当我在Outlook中阅读电子邮件的正文时,它已经摆脱了我的所有换行符.我把\n放在了行的末尾但除了那之外我还需要做些什么吗?接收器总是使用Outlook.
我在microsoft.com上发现了一个页面,其中显示Outlook中有一个"删除换行符""功能",这是否意味着除了取消检查该设置之外,没有其他方法可以解决这个问题?
谢谢
我今天刚刚和这个打架.让我们调用删除额外换行符"延续"的行为.一个小实验发现以下行为:
每条消息都以延续关闭开始.
长度小于40个字符的行不会触发延续,但如果继续处于启用状态,则会删除它们的换行符.
40行或更长的行将继续打开.它会一直亮着,直到发生事件才能将其关闭.
以句点,问号,感叹号或冒号结束的行将关闭.(Outlook认为这是一个句子的结尾?)
关闭延续的行将以换行符开始,但如果长度超过40个字符,则会重新开启.
以制表符开头或结尾的行会关闭延续.
以2个或更多空格开头的行会关闭延续.
以3个或更多个空格结束的行会关闭延续.
请注意,我在Outlook 2007中尝试了所有这些.YMMV.
因此,如果可能,请使用句子终止标点符号,制表符或甚至三个空格结束所有项目符号.
您需要使用\r\n
作为解决方案.
在换行符(CRLF)之前附加一个(或两个?)制表符(\ t)时,可以在outlook中强制换行.
例:
This is my heading in the mail\t\n Just here Outlook is forced to begin a new line.
它似乎适用于Outlook 2010.请测试这是否适用于其他版本.
另请参阅Outlook自动清理我的换行符并搞砸我的电子邮件格式
默认情况下,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
似乎没有一个简单的解决方案.替代方案是:
您可以提供2组,每组线之间的换行符.这确实会阻止Outlook将行组合到一行上,但它会在每行之间显示一个额外的空行(产生相反的问题).通过"提供两组换行符"我的意思是你应该使用"\ r \n\r \n"或"\ r \n"或"\n \n"而不是"\ r \n"或"\n"\r".
您可以在电子邮件正文中每行的开头提供两个空格.这避免了在每一行之间引入额外的空白行.但是如果你的消息中的每一行都相当短,那么这种方法效果最好,因为用户可能正在一个非常狭窄的Outlook窗口中预览文本,该窗口将每行的末尾包裹到下一行的第一个位置,在那里它不会与你的两个空格缩进的行对齐.此策略已用于某些简报.
您可以放弃使用纯文本格式,并使用html格式.
我有同样的问题,并找到了解决方案.试试这个: %0D%0A
添加换行符.