我使用Mailgun发送电子邮件。邮件有一个短主题(11个字符),一个文本正文,其最大行长115个字符和PDF附加。 我从Mailgun收到了一些错误(在很少的电子邮件中),并显示消息:" 550超出最大行长度(参见RFC 5322 2.1.1)。" RFC 5322,2.1.1表示最大行长度为998个字符,不包括CRLF。
由于我的电子邮件最长的一行比这短,这个问题是否可能是由标题,CSS规则或附件引起的?
答案 0 :(得分:2)
附件应该不是问题。如果你有css,那么我怀疑你也有html身体。我会查看那里和文本正文中的行长度。也许在某处缺少换行符。
答案 1 :(得分:1)
我遇到了同样的错误,我想做出一个更明确的答案:CSS计入行长限制,因此,如果您有很多没有换行符的CSS,则会导致此错误。
答案 2 :(得分:0)
服务器每行只允许这么多(550或980)个字符。如果没有换行符,则所有HTML都将计为一行。
因此,简单的解决方案是在电子邮件正文中添加一些换行符。 这就是消息正文中的一些\ r \ n。
答案 3 :(得分:0)
当我包含在原始电子邮件中(以base64编码)的附件长度超过998个字符时,我遇到了这个问题。正如错误所暗示的,这是由于RFC5322 section 2.1.1。
我通过将base64分成每行1000个字符的行(即998 + \ r \ n)来解决它。 PHP为此提供了一个名为chunk_split的功能,并且可以使用regex implementation of chunk_split
在JavaScript中完成类似的操作