Re: failed to retrieve attachment

От: Vladimir A. Butenko <CGatePro_at_mx_ru>
Дата: Mon 21 Jun 2004 - 19:07:57 MSD

On Mon, 21 Jun 2004 16:32:42 +0400
  <CGatePro@mx.ru> (anton@engec.ru) wrote:
> Здравствуйте, Сталкеры!
>
> Жаль, что никто так и не ответил на мое письмо от Пн 14.06.2004 17:28.
> Но это подвигло меня проверить все еще раз. Оказывается, проблема
> состоит в том, что Опера (по крайней мере 7.21win) "переписывает" ссылку
> на аттачмент из
> /MessagePart/INBOX%2Fengec/317-02-B/Travel%20around%20Europe.doc
> в
> /MessagePart/INBOX/engec/317-02-B/Travel%20around%20Europe.doc
>
> Обратите внимание, на разную запись символа "/" после INBOX в первом и
> втором варианте. IE подобного не делает и аттачмент скачивается
> нормально.
>
> Права ли Опера, переписывая "кодированный" символ в "нормальный"?

Нет.

> Прав
> ли CommuniGate не воспринимая "исправленную" ссылку?

Да.

> Думаю, что браузер
> по стандарту имеет право "канонизировать" излишне кодированные символы в
> ссылках

К сожалению, стандарт думает иначе (RFC2396):


3.3. Path Component

    The path component contains data, specific to the authority (or the     scheme if there is no authority component), identifying the resource     within the scope of that scheme and authority.

       path = [ abs_path | opaque_part ]

       path_segments = segment *( "/" segment )
       segment       = *pchar *( ";" param )
       param         = *pchar

       pchar         = unreserved | escaped |
                       ":" | "@" | "&" | "=" | "+" | "$" | ","

    The path may consist of a sequence of path segments separated by a     single slash "/" character. Within a path segment, the characters     "/", ";", "=", and "?" are reserved. Each path segment may include a     sequence of parameters, indicated by the semicolon ";" character.     The parameters are not significant to the parsing of relative     references.


Если бы тут было "излишнее" кодирование, то Вы были бы правы. Однако кодирование (escape) зарезервированных в данном контескте символов - обязанность.

> а CommuniGate не должен использовать искусственное слияние
> частей имени папки IMAP для упрощения парсинга запроса.
В этом "слиянии" нет ничего искусственного, более того - оно не слияние. Оно есть path segment, который закодирован по всем правилам кодировки path_segment. Opera же (судя по Вашим словам) рушит URL, потому что path возвращенный ей, и path, который она использует - "две большие разницы".   

> Можно ли рассчитывать на fix?

Это Вам может ответь лишь производитель "Opera".   

> C уважением,
> Антон

Sincerely,
Vladimir Получено Mon Jun 21 15:08:02 2004

Этот архив был сгенерирован hypermail 2.1.8 : Tue 21 Feb 2006 - 03:15:03 MSK