Encode :: MIME :: Header (называемый encode('MIME-Header', ...)
) выполняет некоторое разбиение строки (называемое свертыванием в RFC 822 ).
К сожалению, MIME :: Entity делает некоторыерасщепление линий тоже, вероятно, по-другому.Это также избавляет от новой строки, сгенерированной Encode :: MIME :: Header.Это оставляет пробелы.
Я был бы счастлив оставить MIME :: Entity для кодирования моих заголовков, но похоже, что он просто выполняет разделение строк.Так что я думаю, что мне все еще нужно кодировать их самостоятельно.
В качестве обходного пути я удалил маркеры разделения строк из моих закодированных заголовков с помощью
my $encoded_from = encode('MIME-Header', 'Fantasy Email <vujerldujhgurtelhwgutrwhgunwlhvulhgvnuwlhvuwlnhvgnulwh@gmail.com>');
$encoded_from =~ s/\r?\n\s//g;
(И то же самое для предмета.)
Теперь вывод выглядит следующим образом:
Subject: A very long subject that will span on multiple lines in the
headers, with a leading space at the beginning of each new line.
From: Fantasy Email
<vujerldujhgurtelhwgutrwhgunwlhvulhgvnuwlhvuwlnhvgnulwh@gmail.com>
Мне интересно, есть ли более элегантное решение, такое как Encode :: MIME :: Header с режимом совместимости MIME :: Entity иличто-то в этом роде.