邮件中的最大行长度

21

为什么php文档中的mail()函数会说:

行的长度不能超过70个字符。

(在参数message部分下面)?

有没有规定电子邮件行长度的RFC文件?

这个问题:PHP mail and Lines should not be larger than 70 characters说:

没有那么多无法处理长行的客户端了。

所以,是因为构建不良的客户端/服务器对太长的行做了不良的操作,而70是一个经过测试能够很好地工作的值,还是存在某个RFC或其他规范要求邮件应用程序处理70个字符长的行?

1个回答

27

互联网消息格式 RFC,最新版本为5322

2.1.1. 行长度限制

此标准对每行字符数设置了两个限制。每行字符数不能超过998个,推荐每行不超过78个字符,不包括CRLF。

...

较为保守的78个字符建议是为了适应许多用户界面实现,这些实现可能会截断或将超过每行78个字符的显示灾难性地换行,尽管这样的实现不符合本规范(以及[RFC2821]的意图),如果它们实际上导致信息丢失,则非一致性的。再次强调,即使在对消息施加了此限制,也有责任对显示消息的实现进行控制。

(MIME RFC还规定了最大76个字符)


2
该死,这个bug调了我一整天。我正在从一个4页的表单中撰写电子邮件。突然之间,邮件停止发送,我无法找出原因。为了解决这个问题,我加入了几个换行符$message .= "\r\n";,瞬间就可以正常工作了。请注意:这些换行符必须用双引号括起来,而不是单引号。 - Ronnie

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