Имя файла вложения CFMail повреждено в ColdFusion 2016 на сервере Windows - PullRequest
0 голосов
/ 05 июня 2018

Я перемещаю сайт с CF10 в Linux на CF2016 в Windows и столкнулся с проблемой вложений файлов с помощью cfmail.

Я прикрепляю файл в cfmail с помощью;

<cfmailparam file="#FileName#">

, а также пробовал варианты с расположением и без него и набираю:

<cfmailparam file="#FileName#" disposition="attachment; 
         filename=""#FileName#""" 
         type="#ContentType#/#ContentSubType#">

Но неважноЧто, в CF2016 в Windows имена моих вложений в Outlook отображаются как ATT00160.dat (без установленного типа) или ATT00169.xlsx (с установленным типом)

Кажется, что имена файлов более определенной длины вызывают проблему.Имя файла из 64 символов сломает его, но имя файла поменьше, скажем 49 символов, не будет.

При просмотре источника сообщений в Outlook из cfmail, отправленного из Windows, я вижу значение ниже.Обратите внимание, под content-type имя было разделено?

Content-Type: application/octet-stream; 
    name*0=BLAH_BLAH1_Ownership_Database_Issue_2018-01_In_Development2.; 
    name*1=xlsx
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
 filename*0=BLAH_BLAH1_Ownership_Database_Is;
 filename*1=sue_2018-01_In_Development2.xlsx

То же вложение, отправленное cfmail из Linux, дает мне:

Content-Type: application/octet-stream; 
    name=BLAH_BLAH1_Ownership_Database_Issue_2018-01_In_Development2.xlsx
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
 filename*0=BLAH_BLAH1_Ownership_Database_Is;
 filename*1=sue_2018-01_In_Development2.xlsx

Обратите внимание, что имя content-type не имеетбыл разбит.

У кого-нибудь есть идеи, как решить эту проблему?

1 Ответ

0 голосов
/ 05 июня 2018

Итак, я наконец разобрался.Вам нужно вручную ввести имя файла в виде:

<cfmailparam file="#FileName#" 
      type="#ContentType#/#ContentSubType#;name=""#FileName#""">

Мне никогда не приходилось делать это ранее.Я не знаю, является ли это Windows-сервером, CF2016 или SmarterMail (нашим почтовым сервером), но если вы столкнулись с той же проблемой, вышесказанное сработало для меня.

...