如何增加 Email::MIME 中标头的长度?

1 email perl mime

我用来Email::MIME生成电子邮件。我可以使用以下方法生成标头:

$email->header_str_set('some-label', @my-array);
Run Code Online (Sandbox Code Playgroud)

问题是,如果输出超过 70 个字符,它会将结果分成 2 或 3 行。我需要它在一行中。

我查看了Email::MIME文档,发现:

... header_str 参数是要包含在消息中的标头对列表。每对的值应为将根据需要进行 MIME 编码的文本字符串。或者,它可以是具有 as_mime_string 方法的对象,该方法实现该对象到 MIME 编码字符串的转换。使用两个命名输入参数调用该对象方法:charset 和 header_name_length

我查了很多,但没有找到如何改变这个变量的值。

有任何想法吗?

我尝试过使用类似的东西:

$email->header_name_length_set(100);
Run Code Online (Sandbox Code Playgroud)

但它说无法定位对象方法。

Ste*_*ich 5

电子邮件格式对一行的长度有限制。引用RFC 5322 第 2.1.1 节

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

您观察到的新行称为“标题折叠”。这仅用于遵守线路的长度限制。接收者站点上的适当用户代理将理解这个概念并展开线路。另请参见第 2.2.3 节

我需要它在一行中。

您可能应该修复要求这是一行的代码,因为它对邮件的工作方式做出了错误的假设。

而且,查看 Email::MIME 的代码,我认为这种行为是硬编码的,无法通过一些简单的设置来更改。

使用两个命名输入参数调用该对象方法:charset 和 header_name_length ...

header_name_length与标题行的长度无关。它仅用于指定“名称:值”中标头名称的长度,以便它不会被编码,而只会被编码。