【发布时间】:2010-10-02 08:05:41
【问题描述】:
我想知道是否应该在文本电子邮件中应用自动换行?那么 HTML 电子邮件呢?如果是这样,你通常会用什么字符换行?
【问题讨论】:
我想知道是否应该在文本电子邮件中应用自动换行?那么 HTML 电子邮件呢?如果是这样,你通常会用什么字符换行?
【问题讨论】:
RFC 2646 说:
Text/Plain 媒体类型是 Internet 电子邮件的最小公分母,行数不超过 997 个字符(按照惯例,通常不超过 80 个)
另一个流行的标准是在 72 个字符处换行。这可以追溯到许多控制台应用程序(如 EDIT 和许多 BBS 界面),它们在 ASCII“窗口”中显示文本,包括边框和滚动条,允许显示的字符略少于 80 个。
【讨论】:
Google 说结果 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"
【讨论】:
通常在 72 处换行(80 也很常见,但这意味着引用时它将超过 80)以处理至少一两个级别的引用。有“text/flowed” MIME 类型,这意味着客户端将在窗口边界处自动包装文本,但没有多少客户端支持它。只需将您的编辑器设置为 72 换行,您就可以安全地被大多数人阅读。
编辑:确切的类型是text/plain,加上format=flowed,如下所示:
Content-Type: text/plain; format=flowed
请参阅rfc2646 了解详情。
应该避免使用 HTML 邮件 IMNSHO,并不是每个人都在浏览器中阅读邮件或拥有支持 HTML 的邮件客户端。大多数使用 HTML 的理由(用下划线、粗体等来丰富邮件)都可以模拟。 HTML 不需要包装,因为客户端会适应窗口大小。
HTML 的替代方案是“text/enriched”MIME 类型,它为您提供了 HTML 邮件的大部分优点而无需麻烦,但同样可能并非所有地方都支持。
请参阅here 了解文本/丰富内容。
【讨论】:
我经常发现自己开始电子邮件回复:
[Format recovered--see http://www.lemis.com/grog/email/email-format.php]
我从 Greg Lehey 那里得到的。 that page 的一部分说:
显然,必须有某种方式来指定不应包装消息文本。那是文本/纯文本。有允许包装的特殊 MIME 附件类型,尽管我仍然认为这是一个坏主意。如果您指定您的消息可能会被包装,那么您就是在假设接收者的屏幕看起来像什么。即使你在某些时候是对的,你也不可能一直都是对的。例如,一个人可能有一个 200 个字符宽的屏幕,以便能够显示长日志文件条目,但他不希望看到那么长的文本。
【讨论】:
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 个字符的限制) 鲁棒性。
另请参阅:RFC2045、RFC2046、RFC2047、RFC2049、RFC4289 和 RFC6838 以了解 MIME 规范。
阅读 RFC 很有趣。你知道你喜欢它:-)
【讨论】:
像JavaMail 这样的优秀邮件 API 将为您完成这项工作。理想情况下,您不必明确考虑这个问题。
【讨论】:
一般情况下,您应该在 80 处换行,或者更小一点,以允许不知情的客户在不换行的情况下进行报价。
【讨论】:
在第 72 位之前的第一个空白字符处换行,如果没有,则在第 72 位换行。在 Eudora 中,当我使用它时,约定是在行尾留一个空格表示它已被换行,因此它会向接收客户端发出信号,根据行的宽度在任何需要的地方重新排列段落客户的窗口。我不确定当前的电子邮件客户端是否属于这种情况。
【讨论】:
在我切换到 mutt/xterm 之前没有使用换行符(从不回头)。
【讨论】: