我想知道在文本邮件中是否应该应用自动换行?那么 HTML 邮件呢?如果需要,通常应该在哪个字符处进行换行?
RFC 2646 中提到:
纯文本媒体类型是互联网电子邮件的最低公共分母,每行不超过997个字符(通常约定不超过80个字符)。
另一个常用的标准是将每行限制在72个字符以内。这可以追溯到很多控制台应用程序(如EDIT和许多BBS界面),它们在ASCII“窗口”中显示文本,包括边框和滚动条,允许显示略少于80个字符。
text/plain
,加上format=flowed
,像这样:Content-Type: text/plain; format=flowed
请参考rfc2646了解详情。
建议避免使用HTML邮件,因为并非每个人都在浏览器中阅读邮件或拥有启用HTML的邮件客户端。大多数使用HTML的原因(如加粗、下划线等)都可以模拟。HTML不需要包装,因为客户端会自适应窗口大小。
替代HTML的方法是"text/enriched" MIME类型,它提供了大部分HTML邮件的优点,但可能并非在所有地方都受支持。
请参见此处以了解text/enriched。
谷歌显示约有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"
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很有趣。你知道你喜欢它 :-)
我经常发现自己在电子邮件回复中这样开头:
[Format recovered--see http://www.lemis.com/grog/email/email-format.php]
我从Greg Lehey那里得到了以下内容。来自该页面的一部分如下:
显然,必须有一种方式来指定消息文本不应该被包装。这是text/plain类型。有一些特殊的MIME附件类型允许包装,尽管我仍然认为这是一个坏主意。如果您指定您的消息可能会被包装,那么您就假设接收者的屏幕长什么样子。即使您有时是正确的,也不能始终正确。例如,一个人可能拥有200个字符宽的屏幕,以便能够显示长的日志文件条目,但他不想看到他的文本那么长。
通常情况下,您应该在80个字符处进行换行,或者稍微少一些,以便于低分辨率的客户端引用时不需要换行。
在第72个位置之前的第一个空格字符处换行,如果没有则在第72个位置换行。在我以前使用Eudora的时候,惯例是在行末留下一个空格表示已经换行,这样可以向接收客户端发出信号,在客户端窗口宽度的基础上重新调整段落流。我不确定当前的电子邮件客户端是否仍然遵循这种约定。
在我切换到mutt/xterm之前,我从未使用过linewrap(再也不会回头了)。