<?xml version="1.0" encoding="koi8-r"?>
<rss version="0.91">
<channel>
    <title>OpenForum RSS: Баг в subject&apos;ами писем</title>
    <link>https://www.opennet.dev/openforum/vsluhforumID4/220.html</link>
    <description>Привет&lt;br&gt;&lt;br&gt;У меня SquirrelMail не показывает заголовки писем с opennet&apos;а. Сегодня посмотрел внимательнее - они не соответствуют RFC2047. Например из сегодняшнего письма:&lt;br&gt;&lt;br&gt;Subject: =?KOI8-R?Q?=D5=D4=C9=CC=C9=D4=C1 su =C9=CC=C9 =C4=CF=D3=D4=D5=D0 =CB =D0=D2=C1=D7=C1=CD root =CF=C2=D9=DE=CE=CF=CD=D5 =D0=CF=CC=D8=DA=CF=D7=C1=D4=C5=CC=C0?=&lt;br&gt;&lt;br&gt;тут две проблемы:&lt;br&gt;1) в токенах недопустимы пробелы, они должны заменятся на подчеркивание или =20;&lt;br&gt;2) длина одной строки ограничена 76 символами, включая имя хедера и указание кодировки; потом обязан быть перенос на новую строку.&lt;br&gt;&lt;br&gt;Если интересно, то могу запостить правильную реализацию на PHP, десяток строчек (не мое, где-то в Инете нашел).&lt;br&gt;</description>

<item>
    <title>заметил небольшой глюк в rfc2047conv (dimedrol)</title>
    <link>https://www.opennet.dev/openforum/vsluhforumID4/220.html#10</link>
    <pubDate>Thu, 11 Jun 2009 06:48:00 GMT</pubDate>
    <description>Спасибо автору!&lt;br&gt;Полезная функция. Но &lt;br&gt;в процессе эксплуатации заметил, что при переносе длинных строк, символы на границе строк могут быть перенесены некорректно, иногда разбиваются по середине, и пол символа остается на одной строке, а вторая половина переносится на следую строку. Например, у меня была строка, в которой было слово &apos;найдено&apos;, и вот, как оно разбилось на части.&lt;br&gt;Буква &apos;д&apos; , после кодирования должна превращаться в &apos;=D0=B4&apos; . Так вот &apos;=D0&apos; осталось на одной строке, а &apos;=B4&apos; перенеслось на следующую, и как следствие, при чтении этого письма в почтовом клиенте, вместо буквы д были два знака вопроса.&lt;br&gt;&lt;br&gt;.....=D0=BD=D0=B0=D0=B9=D0?=&lt;br&gt; =?UTF-8?Q?=B4=D0=B5=D0=BD=D0=BE=A?=&lt;br&gt;</description>
</item>

<item>
    <title>Баг в subject&apos;ами писем (Akzhan)</title>
    <link>https://www.opennet.dev/openforum/vsluhforumID4/220.html#9</link>
    <pubDate>Fri, 28 Dec 2007 14:28:24 GMT</pubDate>
    <description>&amp;gt;огромное спасибо автору функции &lt;br&gt;&amp;gt;искал именно что-то подобное и нашел в этом форуме &lt;br&gt;&lt;br&gt;Проще взять из CPAN модуль&lt;br&gt;&lt;br&gt;MIME::AltWords. Там попутно и другие ошибки поправлены.&lt;br&gt;</description>
</item>

<item>
    <title>Баг в subject&apos;ами писем (Andrey)</title>
    <link>https://www.opennet.dev/openforum/vsluhforumID4/220.html#8</link>
    <pubDate>Fri, 06 Oct 2006 11:58:29 GMT</pubDate>
    <description>огромное спасибо автору функции&lt;br&gt;искал именно что-то подобное и нашел в этом форуме&lt;br&gt;&lt;br&gt;&lt;br&gt;</description>
</item>

<item>
    <title>Баг в subject&apos;ами писем (Maxim Chirkov)</title>
    <link>https://www.opennet.dev/openforum/vsluhforumID4/220.html#7</link>
    <pubDate>Thu, 13 Apr 2006 09:54:36 GMT</pubDate>
    <description>&amp;gt;Накидал такую функцию, мои тесты она проходит. Лицензия - &quot;все_пофиг&quot; :) &lt;br&gt;&lt;br&gt;Добавил ее вместо MIME::Words.</description>
</item>

<item>
    <title>Баг в subject&apos;ами писем (dev)</title>
    <link>https://www.opennet.dev/openforum/vsluhforumID4/220.html#6</link>
    <pubDate>Wed, 12 Apr 2006 08:51:51 GMT</pubDate>
    <description>&amp;gt;Хм, обновил версию модуля MIME::Words, все равно поведение с пробелами не изменилось. &lt;br&gt;&lt;br&gt;Угу, у него и в документации написано, что не полностью соответствует.&lt;br&gt;&lt;br&gt;&amp;gt;Почитал RFC, там действительно определено что пробелы между закодированными блоками не отображаются, &lt;br&gt;&amp;gt;а между закодированным и не закодированным - вставляются. Получается проблема в &lt;br&gt;&amp;gt;MIME::Words, попытаюсь найти альтернативный модуль соблюдающий стандарт. &lt;br&gt;&amp;gt;&lt;br&gt;&amp;gt;PS. Посмотрел пару webmail на перл, там таже проблема. &lt;br&gt;&lt;br&gt;Накидал такую функцию, мои тесты она проходит. Лицензия - &quot;все_пофиг&quot; :)&lt;br&gt;&lt;br&gt;#!/usr/local/bin/perl&lt;br&gt;&lt;br&gt;use strict;&lt;br&gt;use vars;&lt;br&gt;&lt;br&gt;sub rfc2047conv&lt;br&gt;&#123;&lt;br&gt;        my $str      = shift;       # чего кодировать&lt;br&gt;        my $charset  = uc(shift);   # какую кодировку приписать&lt;br&gt;        my $init_len = shift &amp;#124;&amp;#124; 0;  # длина того, что планируется добавить потом в начало строки&lt;br&gt;&lt;br&gt;        my $len = length($str);&lt;br&gt;&lt;br&gt;        return &apos;&apos; unless($len);&lt;br&gt;&lt;br&gt;        my $begin = &quot;=?$charset?Q?&quot;;&lt;br&gt;        my $res   = $begin;&lt;br&gt;        my $count =</description>
</item>

<item>
    <title>Баг в subject&apos;ами писем (Maxim Chirkov)</title>
    <link>https://www.opennet.dev/openforum/vsluhforumID4/220.html#5</link>
    <pubDate>Tue, 11 Apr 2006 12:37:52 GMT</pubDate>
    <description>&amp;gt;Показывается как: &lt;br&gt;&amp;gt;Багвsubject&apos;амиписем &lt;br&gt;&amp;gt;Пробелы должны явно входить в токен как подчеркивания, т.к. по RFC рядом &lt;br&gt;&amp;gt;стоящие токены склеиваются. &lt;br&gt;&lt;br&gt;Хм, обновил версию модуля MIME::Words, все равно поведение с пробелами не изменилось.&lt;br&gt;&lt;br&gt;Почитал RFC, там действительно определено что пробелы между закодированными блоками не отображаются, а между закодированным и не закодированным - вставляются. Получается проблема в MIME::Words, попытаюсь найти альтернативный модуль соблюдающий стандарт.&lt;br&gt;&lt;br&gt;PS. Посмотрел пару webmail на перл, там таже проблема.</description>
</item>

<item>
    <title>Баг в subject&apos;ами писем (dev)</title>
    <link>https://www.opennet.dev/openforum/vsluhforumID4/220.html#4</link>
    <pubDate>Tue, 11 Apr 2006 09:27:33 GMT</pubDate>
    <description>&amp;gt;&amp;gt;Тот глюк исчез, но теперь он кодировку неправильную подставил: &lt;br&gt;&amp;gt;&lt;br&gt;&amp;gt;Исправил. &lt;br&gt;&lt;br&gt;Еще один остался: &lt;br&gt;&lt;br&gt;Subject: =?KOI8-R?Q?=E2=C1=C7?= =?KOI8-R?Q?=D7?= subject&apos;=?KOI8-R?Q?=C1=CD=C9?= =?KOI8-R?Q?=D0=C9=D3=C5=CD?=&lt;br&gt;&lt;br&gt;Показывается как:&lt;br&gt;&lt;br&gt;Багвsubject&apos;амиписем&lt;br&gt;&lt;br&gt;Пробелы должны явно входить в токен как подчеркивания, т.к. по RFC рядом стоящие токены склеиваются.&lt;br&gt;</description>
</item>

<item>
    <title>Баг в subject&apos;ами писем (Maxim Chirkov)</title>
    <link>https://www.opennet.dev/openforum/vsluhforumID4/220.html#3</link>
    <pubDate>Tue, 11 Apr 2006 09:22:24 GMT</pubDate>
    <description>&amp;gt;Тот глюк исчез, но теперь он кодировку неправильную подставил: &lt;br&gt;&lt;br&gt;Исправил.</description>
</item>

<item>
    <title>Баг в subject&apos;ами писем (dev)</title>
    <link>https://www.opennet.dev/openforum/vsluhforumID4/220.html#2</link>
    <pubDate>Tue, 11 Apr 2006 08:15:01 GMT</pubDate>
    <description>&amp;gt;Для кодирования у меня используется Perl модуль MIME::Words. Сейчас посмотрел, а в &lt;br&gt;&amp;gt;одном месте вместо &quot;encode_mimewords&quot; написано &quot;encode_mimeword&quot;, поправил. &lt;br&gt;&lt;br&gt;Тот глюк исчез, но теперь он кодировку неправильную подставил:&lt;br&gt;&lt;br&gt;Subject: =?ISO-8859-1?Q?=E2=C1=C7?= =?ISO-8859-1?Q?=D7?= subject&apos;=?ISO-8859-1?Q?=C1=CD=C9?= =?ISO-8859-1?Q?=D0=C9=D3=C5=CD?=</description>
</item>

</channel>
</rss>
