Страницы: 1
RSS
Баг!!! Корявое кодировоние для вложения., Различные Content-Transfer-Encoding вложения и самого письма. Баг!
 
Наткнулся на, ИМХО, весьма серьёзный баг в TheBat! (замечено в версиях 3.99.29, 4.0.14 и 4.0.24 на разных компьютерах).

Куда писать так чтобы о нём прочли разработчики не знаю (поэтому решил написать о нём здесь), но очень надеюсь что этот своеобразный багрепорт попадётся им на глаза.

Ниже описание и примеры исходников писем.

Создаётся письмо с вложением. Речь о письмах в plain text (относительно писем в html не знаю, поскольку не пользуюсь). При создании письма само письмо и поле Subject кодируется в Base64 (без кодирования либо Quoted-Plintable -- это без разницы), а прикреплённый файл иногда (не всегда, но... короче, закономерность не была замечена, посему как и почему это случается не понятно)) в x-uue. Ошибка замечена при прикреплении файлов PDF и XLS. С графическими файлами всё нормально. Это с чем непосредственно я сталкивался.

В том случае если адресат (получатель) получает письмо с помощью почтового клиента (с TheBat! точно, а об остальных клиентах мне не ведомо), то всё нормально. Файл есть возможность открыть, сохранить и т.п.

В том случае если адресат (получатель) не пользуется почтовым клиентом, но просматривает его посредством веб-интерфейса (не важно на каком сервере находится его почтовый ящик, на бесплатном либо корпоративном -- это без разницы, поскольку описываемое замечено не менее чем в двух десятках случаев при взаимодействии с разными адресатами в разных концах света и пользующихся разными почтовыми сервисами) прочесть поле темы и само содержание письма можно, но вот с вложением... Сохранить вложение на жесткий диск невозможно (вернее, сохраняется то оно сохраняется, но с ошибками и открыть его невозможно ничем). Открыть прямо на сервере (например XLS через Google Docs, если получатель пользуется Gmail или, например, PDF прямо в браузере) тоже невозможно, поскольку программа-обработчик не воспринимает такой файл).

Всё вышеописанное касается писем подобных тому что показан во втором примере (см. ниже). С нормальными письмами (см. ниже первый пример) всё тип-топ.

Ниже см. примеры писем с нормальным (первый пример) Content-Transfer-Encoding и пример письма с ошибкой.

Пример письма с нормальным Content-Transfer-Encoding:
====================================================

Код
...
Subject: *******
MIME-Version: 1.0
Content-Type: multipart/mixed;
boundary="----------24B72D21502815"
------------24B72D21502815
Content-Type: text/plain; charset=koi8-r
Content-Transfer-Encoding: base64
*******
------------24B72D21502815
Content-Type: APPLICATION/VND.MS-EXCEL;
name="*******.xls"
Content-transfer-encoding: base64
Content-Disposition: attachment;
filename="*******.xls"
0M8R4KGxGuEAAAAAAAAAAAAAAAAAAAAAPgADAP7/CQAGAAAAAAAAAAAAAAABAAAAKwAAAAAA
AAAAEAAA/v///wAAAAD+////AAAAACoAAAD/////////////////////////////////////
////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////
...

====================================================


Пример письма с ошибкой в Content-Transfer-Encoding:
====================================================

Код
...
Subject: *******
MIME-Version: 1.0
Content-Type: multipart/mixed;
boundary="----------81AE499F37E28"
------------81AE499F37E28
Content-Type: text/plain; charset=koi8-r
Content-Transfer-Encoding: base64
*******
------------81AE499F37E28
Content-Type: application/vnd.ms-excel;
name="*******.xls"
Content-transfer-encoding: x-uue
Content-Disposition: attachment;
filename="*******.xls"
begin 644 awaiting.xls
MT,\1X*&Q&N$`````````````````````/@`#`/[_"0`&```````````````!
M`````0``````````$```*0````$```#^____``````````#_____________
M____________________________________________________________
M____________________________________________________________
M____________________________________________________________
...

====================================================

:!: ПРИМЕЧАНИЕ.
В приведённых выше примерах:
Три точки (...) -- "и т. д."
Звёздочки (*******) -- тема письма и название вложения и др. несущественный контент.

P.S. Хотел запостить скриншоты окон с исходниками писем, но форум не даёт загрузить более одного графичаского файла. К сожалению...  :cry:
 
Изменено: linkar - 19.07.2008 05:36:46
 
хмм... Ну почему веб-морды не поддерживают x-uue - это отдельный вопрос.
Также они не поддерживают разбиение письма на части.

а почему вы ююкаете файлы?
в свойствах ящика есть соответствующая настройка - UU \ MIME.
Теоретически есть ещё 2 пункта меню - прикрепить файл в UU или MIME(base64).
 
Цитата
Ivan Bolhovitinov пишет:
а почему вы ююкаете файлы?
в свойствах ящика есть соответствующая настройка - UU \ MIME.
В том-то и дело что я специально не "ююкаю". "Ююкает" TheBat!.
В свойствах ящика конкретно выставлено Base64 для вложений, но при создании письма прикреплённый файл почему-то кодируется в x-uu. Не всегда, но...
Такое случается (иногда) если прикреплять щёлкая мышкой по кнопке "Прикрепить файл" или с помощью сочетания Ctrl+PgUp. Закономерность почему один раз кодируется так, а другой эдак я не обнаружил. Поэтому и написал сюда об этом, как я считаю, баге.
Цитата
Ivan Bolhovitinov пишет:
Теоретически есть ещё 2 пункта меню - прикрепить файл в UU или MIME(base64).
Этой "теоретической" фичей я не пользуюсь, но попробую... хотя всё же это то же самое что и Ctrl+PgDn (для UU) и Ctrl+PgUp (для Base64), поэтому результат, вероятно, будет такой же как я описал в посте выше.

P.S. Это конечно хорошо что TheBat! поддерживает кодирование разными способами, но, ИМХО, стоило бы убрать с глаз долой подальше (запрятать поглубже в настройки и написать соответствующее предупреждение там где это принудительно включалось бы) практически нигде не используемое ныне UU. Либо, что было бы ещё более практично, вообще сделать так чтобы использовалось лишь только стандартное Base64. Это на правах ИМХО.
 
Не знаю... у меня что-то никак не получается без специальных ухищрений чтоб вложение было UU
>Ctrl+PgDn (для UU) и Ctrl+PgUp
Клавиша Alt у меня....

Могу пока только предполагать что промахиваетесь по кнопке...
Воспроизвести (гарантировано повторить) получается?
"иногда" ....
 
Да, извиняюсь, Alt конечно. Очепятался.

Не промахиваюсь. Начал особо внимательно следить за этим после того как периодически начались сыпаться жалобы от адресатов (то бишь, после того как начали работать с TheBat!).

Воспроизвести (гарантированно повторить) на получается, поскольку, как я писал выше закономерностей не замечено.
Теперь приходится просматривать исходники (на предмет глюка с кодированием аттачей) всех готовых к отправке писем чтобы не было косорезов. А это не есть гуд, когда имеешь дело с несколькими сотнями в день.
Фирма и так уже влетела на весьма крупную сумму когда мы не знали в чём дело (пока разбирались).

Ныне из возникшей ситуации видятся лишь два выхода:
1. либо каждый раз перепроверять готовые к отправке письма по-одному и, если обнаруживается глюк, удалять аттач и переаттачивать его снова... и так до тех пор пока не будет всё тип-топ (здесь не угадаешь когда это случится -- можно десяток раз одним и тем же способом цеплять файл и лишь на одиннадцатый он прицепится нормально.) А это, поверьте, отнимает весьма много времени (писем-то не один и не два...).
2. забросить TheBat! и перейти на какой-нибудь другой клиент.

Оба выхода не устраивают, поскольку:
1. нет смысла тратить время на обезьянью работу.
2. переход на TheBat! изначально был по причине того что в нём много чего в работе можно упростить и автоматизировать.
Изменено: linkar - 22.07.2008 22:52:21
Страницы: 1