Ура, одержана победа 🙂 противостояния антивируса и передачей почтового сообщения с прикрепленными файлами средствами SMTP.
Предыстория
Давно создал пакет в СУБД Oracle, который использует UTL_SMTP для отправки из базы писем. Все работало отлично, пока на одном из проектов письмо пришло некорректным, а именно: приаттаченный файл имел неправильное имя, расширение .dat и не раскодированным.
Иными словами: когда мы посылаем письмо, то прикрепляем файлы посредством перекодировки в base64. Например, средствами шаблона мы генерируем какой-нибудь отчет или документ (например, в MS Excel или MS Word), полученный CLOB кодируем в base64 и вставляем в письмо. Отсылаем. Получатель получает письмо, которое содержит прикрепленный документ. Так вот, когда получатель открывает письмо, то в аттаче у него оказывается кодированный в base64 текст документа 🙁
Решение
Все оказалось просто до банальности :).
При отправке с почтового сервера, письмо проверялось антивирусом, установленным на нем (ну, в нашем случае был Касперский). И он добавлял свои пять копеек в заголовок, что приводило к пролеме.
Как оказалось виной всему было то, что при формировании строка
Content-Disposition: attachment; filename="test.xls"
была разнесена на 2 строки 🙂
Content-Disposition: attachment; filename="test.xls"
и до момента, пока мы не встретились с антивирусом, это не было столь критичным для почтового сообщения.