发送电子邮件时是不是需要换行?

Posted

技术标签:

【中文标题】发送电子邮件时是不是需要换行?【英文标题】:Is it necessary to wrap long lines when sending emails?发送电子邮件时是否需要换行? 【发布时间】:2011-02-11 09:23:36 【问题描述】:

我正在使用 Zend_Mail 发送电子邮件。很少有文章(例如 this page 上的第一个示例)建议在消息正文中包含长行。

问题:

    是否有必要使用 wordwrap(),以防任何一行超过 70 个字符?

    这个“70”数字从何而来?

【问题讨论】:

【参考方案1】:

RFC 2822 和 5322 有一个名为 Line Length Limits (2.1.1) 的部分:

本规范对数量有两个限制 一行中的字符。每行字符必须不超过 998 个字符,并且应该不超过 78 个字符,不包括 CRLF。

...

比较保守的78个字符推荐是为了容纳 显示这些的用户界面的许多实现 可能会截断或灾难性地包装显示的消息 每行超过 78 个字符,尽管这样的事实 实现不符合这个意图 规格

在我看来,真正的限制是 998 个字符,而 78 个字符是你真的不需要费心的。

【讨论】:

+1 听起来你是对的。我没有参考资料,但是以纯文本形式发送的 Yahoo webmail 换行长度超过 969 个字符。所以假设在雅虎邮件他们知道他们在做什么,我会说以相同的长度包装:969 但是 Outlook Express 和 Squirrelmail 1.4.23 网络邮件(发送纯文本邮件时)仍然在第 76 个字符(Outlook)和第 73 个字符(Squirrelmail)处换行 而且 Gmail 在发送纯 tesxt 时也会在第 69 个字符处换行。【参考方案2】:

AFAIR,70 ~ 78,更可能是 80 的“保存”版本,来自良好的旧终端,每行显示 80 个字符。在早期,这些终端只是愚蠢的打印机,需要在服务器上准备好它们的输出。这 80 又来自于好的旧打孔卡。打孔卡的物理尺寸(因此与 80 的限制有些密切相关)来自通常用于存放打孔卡的钱盘。

人类和技术很难摆脱旧习惯。我推荐第一个 Crockford 关于 javascript 的谈话以了解更多历史:http://yuiblog.com/crockford

【讨论】:

以上是关于发送电子邮件时是不是需要换行?的主要内容,如果未能解决你的问题,请参考以下文章

使用 SmtpClient 时如何保存电子邮件而不是发送?

将文件附加到电子邮件时,是不是需要先将其存储在服务器上?

发送网格 - 允许使用纯文本的电子邮件中的换行符

使用 PowerShell 发送电子邮件时是不是可以指定 Exchange 版本?

提交谷歌表单时发送电子邮件

使用 rake 任务时检查电子邮件是不是发送一次的最佳方法是啥?