2009-04-23 11 views
3

私は、ColdFusionを使用して、当社のサーバーに保存されている添付ファイルを含む電子メールを送信しようとしています。CFMailの添付ファイルのファイル名を変更する

nたちは、このような元のファイル名などのファイルに関するその他の情報を保持するデータベース内のキーである私たちは1.jpgそれらを呼び出すこれらの添付ファイル、2.doc ... n.extを管理します。

私は、コードを使用することができます。ファイルを指定する

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

を、それは、その後1.docとして電子メールに添付されています。とにかくこれをオーバーライドしてファイルとは別に自分のファイル名を指定することはできますか?

答えて

1

のColdFusion 2016は、ファイル属性で指定したファイル名を上書きするために、ファイル名と呼ばれるこの新しい属性を追加しました。メールは、彼/彼女はOffers.xslxの代わりBook2.xslxとしてこれを参照するユーザーに送信されたときにサンプルの例では、今

<cfmail from="[email protected]" subject="filename test" to="[email protected]" username="[email protected]" password="password" server="localhost" spoolenable="false"> 
    <cfmailparam file="c:\Book2.xlsx" filename="Offers.xlsx"> 
Check out the new offers sheet 
</cfmail> 

を下回っています。もっと詳しい情報はhttps://tracker.adobe.com/#/view/CF-4019518

1

これを実行する唯一の方法は、cffileを使用してファイルのコピーを一時ディレクトリに作成し、名前を変更してから添付することです。その後、完了したらファイルを削除するだけです。私は、ファイルを添付する方法はないと思っていますが、電子メールに添付するときはそれを別のものと呼んでいます。

4

おそらくライアンの提案は最も簡単な解決策です。 CF 8.01を使用している場合は、cfmailparamの新しいremove属性を使用できます。

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

(バージョン8.01には、事前に確認しなければならなかった:あなたはcffileとあなたの添付ファイルを名前を変更し、cfmailparamにそれらを渡されたら、彼らはメールスプールによって処理された後、ColdFusionはあなたのために、ディスクからそれらを削除しますColdfusionのメールスプールが終了する前にアプリがtempファイルを削除していないことを確認してください。)

また、Coldfusionの基盤となるJavaを呼び出すことができ、気に入った名前のメモリのみから添付ファイル付きのメールメッセージを作成できます。 CF 7.02の例については、Dan Switzer's blogをご覧ください。

+0

これは私がやったことですが、ファイルをディスクに書き込んで削除するのではなく、ファイルのバイナリ変数を読み込むだけでCF8のコンテンツ属性を使用しました。 cfmailparamという文字を書き出します。 – Loftx

+0

私は、ファイルを読み込んだり(おそらくそれを書いていない)解決策を探していました。大きなファイルの場合はcoldfusionがかなり枯渇することが予想されます。アタッチメントが依然として好ましい。 – Loftx

1

あなたは8.0.1を(見つけるためにはcfdumpするvar =「#サーバ#」を行う)を実行している場合、これはあなたの人生が少し楽になるかもしれない:

  • cfmailタグとのcfmailparamタグは現在削除を持っていますColdFusionにメールの配信が成功した後に添付ファイルを削除するように指示する属性。
  • cfmailparamタグには、ColdFusion変数の内容を添付ファイルとして送信できるコンテンツ属性が追加されました。これを行うには、次の例のように、コンテンツの属性値として#記号で変数を指定: ファイル属性は、メールヘッダにColdFusionシステム上ではなく、ファイルをインクルードするファイル名を指定し

From:

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

7

あなたは追加してみることができます。

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

を複数の引用符が...私は、彼らがにスペースを意図的に許可されています ファイル名。

+0

元の質問に似たものを探しましたが、これが私が探していたものです。ありがとう。 –

+0

これは1つの添付ファイルに対してのみ機能するようです。電子メールの添付ファイルには実際のファイル名が付いています。 –

+2

恐ろしい!これは正解とマークする必要があります。 –

関連する問題