代码之家  ›  专栏  ›  技术社区  ›  Loftx

更改cfmail中附件的文件名

  •  3
  • Loftx  · 技术社区  · 17 年前

    我正在尝试使用ColdFusion发送包含存储在我们服务器上的附件的电子邮件。

    为了管理这些附件,我们称之为 1.jpg , 2.doc n.ext 哪里 n 是数据库中的一个键,我们在其中保存有关该文件的其他信息,例如其原始文件名。

    我可以使用代码:

    <cfmailparam file="c:\path\1.doc">
    

    指定文件,但随后将其附加到电子邮件 1.doc . 是否仍然可以覆盖此文件并单独指定自己的文件名?

    6 回复  |  直到 8 年前
        1
  •  1
  •   Dungeon Hunter Klemenko    8 年前

    ColdFusion 2016添加了一个名为filename的新属性,以覆盖在文件属性中指定的文件名。下面是一个示例

    <cfmail from="john@sample.com" subject="filename test" to="joanna@sample.org" username="john@sample.com" password="password" server="localhost" spoolenable="false">
        <cfmailparam file="c:\Book2.xlsx" filename="Offers.xlsx">
    Check out the new offers sheet
    </cfmail>
    

    现在,当邮件发送给用户时,他/她会将其视为offers.xslx而不是book2.xslx。更多信息 https://tracker.adobe.com/#/view/CF-4019518

        2
  •  7
  •   Chris    14 年前

    您可以尝试添加:

    <cfmailparam 
    file="#actual_file_name#" 
    disposition="attachment; filename=""#changed_file_name#""">
    

    多个引号是故意的…文件名中允许有空格。

        3
  •  4
  •   Vincent Buck    17 年前

    Ryan的建议可能是最简单的解决方案。如果你在CF 8.01上,你可以利用 cfmailparam 新的 remove 属性。将附件重命名为 cffile 把它们传给 CFMayPARAM ,ColdFusion将在邮件假脱机处理完后从磁盘中删除它们:

    <cfmailparam file="#File_path#" remove="true" />
    

    (在版本8.01之前,您必须确保在ColdFusion的邮件假脱机完成之前,您的应用程序没有删除临时文件。)

    或者,你可以调用CaldFube的底层Java,并用你所喜欢的任何名字来构建你的电子邮件消息,只从内存中添加附件。退房 Dan Switzer's blog 如图7.02所示。

        4
  •  1
  •   Ryan Guill    17 年前

    目前唯一能做到这一点的方法是使用cffile并在临时目录中复制文件,重命名它,然后附加它。然后,您只需要在完成后删除该文件。我不认为有什么方法可以附加一个文件,但当附加到一封电子邮件时,可以称之为不同的文件。

        5
  •  1
  •   Sam Farmer    17 年前

    如果您正在运行8.0.1(要查找cfdump var=“server”),那么这可能会使您的生活更轻松:

    • cfmail和cfmailparam标记现在有一个remove属性,告诉coldfusion在成功传递邮件后删除任何附件。
    • cfmailparam标记现在有一个content属性,允许您将coldfusion变量的内容作为附件发送。为此,请将符号中的变量指定为内容属性值,如下例所示: 文件属性指定要包含在邮件头中的文件名,而不是ColdFusion系统上的文件。

    来自:

    http://www.adobe.com/support/documentation/en/coldfusion/801/cf801releasenotes.pdf

        6
  •  1
  •   Tom Chiverton    12 年前

    由于CF8,您可以根据以下内容使用文件和内容: http://www.bennadel.com/blog/1220-coldfusion-cfmailparam-s-new-content-attribute-is-awesome.htm

    <cfmailparam
        file="someNiceName.doc"
        content="#fileRead( yourNastyFileName.doc )#"
    />
    
    推荐文章