【问题标题】:CFMail attachment filename broken in ColdFusion 2016 on Windows serverCFMail 附件文件名在 Windows 服务器上的 ColdFusion 2016 中损坏
【发布时间】:2018-06-05 08:04:37
【问题描述】:

我正在将一个站点从 Linux 上的 CF10 移动到 Windows 上的 CF2016,并且遇到了 cfmail 文件附件的问题。

我将文件附加到 cfmail 中;

<cfmailparam file="#FileName#">

并且还尝试了带有和不带有处置和类型的变体,例如:

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

但无论如何,在 Windows 上的 CF2016 上,我在 Outlook 中的附件名称是ATT00160.dat(没有类型集)或ATT00169.xlsx(有类型集)

似乎超过一定长度的文件名会导致问题。 64 个字符的文件名会破坏它,但较小的文件名(例如 49 个字符)不会。

在 Outlook 中查看消息源,从 Windows 发送的 cfmail 中,我看到了以下值。注意到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 名称尚未拆分。

有人对如何解决此问题有任何想法吗?

【问题讨论】:

  • 您可以尝试将decode 属性设置为falsefilename(2016 年引入)属性吗?
  • 感谢@Beginner - 我分别尝试了 decode="false" 和 filename="#filename#" - 不幸的是没有区别

标签: coldfusion cfml coldfusion-2016


【解决方案1】:

所以,我终于整理好了。您需要手动将文件名放入类型中:

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

我以前从来不需要这样做。我不知道这是 Windows 服务器、CF2016 还是 SmarterMail(我们的邮件服务器)的东西,但如果您遇到同样的问题,上述方法对我有用。

【讨论】:

  • 感谢您回来发布您的解决方案。
【解决方案2】:

您可能还会看到我向 Adob​​e Bug 跟踪器提交的报告。自从 Coldfusion 切换到较新的 Javamail 后,我一直遇到长文件名附件的问题。

https://tracker.adobe.com/#/view/CF-4199784

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-06-08
    • 1970-01-01
    • 1970-01-01
    • 2014-02-11
    • 1970-01-01
    • 1970-01-01
    • 2012-08-03
    相关资源
    最近更新 更多