你在电子邮件中使用自动换行吗?

13

我想知道在文本邮件中是否应该应用自动换行?那么 HTML 邮件呢?如果需要,通常应该在哪个字符处进行换行?


1
好的答案在这里:https://dev59.com/cU3Sa4cB1Zd3GeqPulwC#2696542 - Marco Demaio
请参见https://dev59.com/YFLTa4cB1Zd3GeqPYjtI#4297689。 - Chris J
9个回答

13

RFC 2646 中提到:

纯文本媒体类型是互联网电子邮件的最低公共分母,每行不超过997个字符(通常约定不超过80个字符)。

另一个常用的标准是将每行限制在72个字符以内。这可以追溯到很多控制台应用程序(如EDIT和许多BBS界面),它们在ASCII“窗口”中显示文本,包括边框和滚动条,允许显示略少于80个字符。


同意。我总是在80个字符处换行,如果这会打断一个单词,我会在80个字符之前的第一个空格或换行处进行换行。 - hmcclungiii

6
常见的做法是在72个字符(80也很常见,但这意味着引用时会超过80个字符)处换行,以处理至少一到两个层次的引用。有“text/flowed” MIME类型,这意味着客户端将在窗口边界处自动换行,但并不是所有客户端都支持它。只需将编辑器设置为在72个字符处换行,您就可以安全且易于大多数人阅读。
编辑:确切的类型是text/plain,加上format=flowed,像这样:
Content-Type: text/plain; format=flowed

请参考rfc2646了解详情。

建议避免使用HTML邮件,因为并非每个人都在浏览器中阅读邮件或拥有启用HTML的邮件客户端。大多数使用HTML的原因(如加粗、下划线等)都可以模拟。HTML不需要包装,因为客户端会自适应窗口大小。

替代HTML的方法是"text/enriched" MIME类型,它提供了大部分HTML邮件的优点,但可能并非在所有地方都受支持。

请参见此处以了解text/enriched。


6

谷歌显示约有1-10个结果...

3,160 for +word +wrap +email +"80 characters"
2,820 for +word +wrap +email +"50 characters"
1,790 for +word +wrap +email +"60 characters"
1,720 for +word +wrap +email +"70 characters"
1,540 for +word +wrap +email +"100 characters"
1,250 for +word +wrap +email +"65 characters"
1,120 for +word +wrap +email +"40 characters"
  962 for +word +wrap +email +"75 characters"
  836 for +word +wrap +email +"72 characters"

2
谷歌只能告诉你人群走向哪里,但不能告诉你是否朝着正确的方向前进 :-) - siukurnin
3
当然,但这个问题的重点大多在于人群的去向 :) - Sparr

2

RFC 5322

https://www.rfc-editor.org/rfc/rfc5322#section-2.1.1

2.1.1. 限制行长度

本规范对一行中的字符数有两个限制。每行字符不能超过998个,应该不超过78个(不包括CRLF)。

998个字符的限制是由于许多发送、接收或存储IMF消息的实现无法处理超过998个字符的行。为了提高鲁棒性,接收实现最好能够处理任意数量的字符行。然而,有很多实现(符合[RFC5321]的传输要求),不接受包含超过1000个字符(包括CR和LF)的消息,因此实现不应创建这样的消息。

更为保守的78个字符建议是为了适应许多用户界面的实现,这些实现可能会截断或灾难性地换行显示每行超过78个字符的消息,尽管这些实现不符合本规范(以及[RFC5321]的意图,如果它们实际上导致信息丢失)。同样,即使对消息施加了此限制,对于显示消息的实现来说,处理任意数量的字符行(至少达到998个字符的限制)是必要的,以提高鲁棒性。

另请参阅:MIME规范的RFC2045、RFC2046、RFC2047、RFC2049、RFC4289和RFC6838。

阅读RFC很有趣。你知道你喜欢它 :-)


2

我经常发现自己在电子邮件回复中这样开头:

[Format recovered--see http://www.lemis.com/grog/email/email-format.php]

我从Greg Lehey那里得到了以下内容。来自该页面的一部分如下:

显然,必须有一种方式来指定消息文本不应该被包装。这是text/plain类型。有一些特殊的MIME附件类型允许包装,尽管我仍然认为这是一个坏主意。如果您指定您的消息可能会被包装,那么您就假设接收者的屏幕长什么样子。即使您有时是正确的,也不能始终正确。例如,一个人可能拥有200个字符宽的屏幕,以便能够显示长的日志文件条目,但他不想看到他的文本那么长。


@JamesDaily 谢谢,自2011年起,旧链接开始重定向到*.php链接,并且在过去的六个月中已经停止。供日后参考,如果上面的链接停止,请使用 archive.org 链接 - Dave C

1
一个好的邮件API,比如JavaMail,会为你完成这个任务。理想情况下,你不需要明确地考虑这个问题。

同意,在所有更新的网站上,我都使用库。不幸的是,在这个网站上,它太旧了,我没有使用过,而且添加一个库需要付费。 - Darryl Hein

0

通常情况下,您应该在80个字符处进行换行,或者稍微少一些,以便于低分辨率的客户端引用时不需要换行。


0

在第72个位置之前的第一个空格字符处换行,如果没有则在第72个位置换行。在我以前使用Eudora的时候,惯例是在行末留下一个空格表示已经换行,这样可以向接收客户端发出信号,在客户端窗口宽度的基础上重新调整段落流。我不确定当前的电子邮件客户端是否仍然遵循这种约定。


我认为尾随字符(无论是空格、连字符还是其他可换行的标点符号)应该始终保留。 - Sparr

-1

在我切换到mutt/xterm之前,我从未使用过linewrap(再也不会回头了)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接