исправление заголовков
Maxim Dounin
mdounin на mdounin.ru
Чт Ноя 26 15:11:51 MSK 2009
Hello!
On Thu, Nov 26, 2009 at 05:33:05PM +0600, Denis F. Latypoff wrote:
> Hello Maxim,
>
> Thursday, November 26, 2009, 5:21:01 PM, you wrote:
>
> > Hello!
>
> > On Thu, Nov 26, 2009 at 04:55:38PM +0600, Denis F. Latypoff wrote:
>
> >> Hello Igor,
> >>
> >> Thursday, November 26, 2009, 4:43:29 PM, you wrote:
> >>
> >> > Может кто-нибудь подсказать, что из перлового многообразия модулей
> >> > умеет корректно преобразовывать заголовки ?
> >>
> >> > Вот это:
> >>
> >> > # $Id: Encode.pm,v 2.35 2009/07/13 00:49:38 dankogai Exp $
> >> > use Encode qw/encode decode/;
> >>
> >> > sub repack_utf_hdr($) {
> >> > my($hdr) = shift;
> >>
> >> - return encode('MIME-Header', decode('MIME-Header', $hdr));
> >> + return encode('MIME-Header', encode('UTF-8', decode('MIME-Header', $hdr)));
>
> > Это не поможет ему производить mime-слова допустимой длины, увы.
>
> Это как?
Это RFC 2047, "2. Syntax of encoded-words":
...
An 'encoded-word' may not be more than 75 characters long, including
'charset', 'encoding', 'encoded-text', and delimiters. If it is
desirable to encode more text than will fit in an 'encoded-word' of
75 characters, multiple 'encoded-word's (separated by CRLF SPACE) may
be used.
...
Кроме того, есть ещё RFC 5322, "2.1.1. Line Length Limits":
There are two limits that this specification places on the number of
characters in a line. Each line of characters MUST be no more than
998 characters, and SHOULD be no more than 78 characters, excluding
the CRLF.
Т.е. 75 символов на encoded-word - это больше, чем рекомендуется
использовать в первой строке (ибо вместе с названием заголовка -
вылезет за 78 символов). Но это уже красивости по большому счёту,
а вот превышать лимит в 75 символов на encoded-word - чревато
боком (e.g. pine такие encoded-words просто не раскодирует).
Maxim Dounin
Подробная информация о списке рассылки nginx-ru