2011-07-11 8 views
2

私はcfmailタグを使用して電子メールを送信すると、URLからPDFファイルを添付しようとしています:URLから電子メールにファイルを添付するにはどうすればよいですか?

<cfmail to="[email protected]" from="[email protected]" subject="Subject" type="html"> 
    <cfmailparam file="http://myfilelocation/pdfFile.pdf"> 
    Body of the email 
</cfmail> 

しかし、これが機能していません。 cfmailparamタグがないと、電子メールは正常に送信されます。 http://myfilelocation/pdffile.pdfに行くと、添付しようとしているPDF文書が表示されます。私は何か間違っているのですか?電子メールにPDF文書を添付するにはどうすればいいですかURLからですか?

+2

を必要として私たちは、ファイルに名前を付けることができHTML電子メール、なぜPDFに直接リンクしないのですか? –

+0

@Paul Perigny - 華麗なアイデア:なぜ私たちはそれを考えなかったのか分かりません。ちょうど私の上司の過去のアイデアを実行し、それが承認された:)ありがとう! (あなたが答えとして投稿すれば私はそれを受け入れることができます) – froadie

答えて

3

をテストしていない、ただ直接PDFへリンクしていない理由は?これにより小さな電子メールが作成され、送信後もPDFを更新する機会が与えられます。

2

cfmailparam fileは、サーバー上の場所を指している必要があります。このファイルは、電子メールに添付されます。

<cfmail to="[email protected]" from="[email protected]" subject="Subject" type="html"> 
<cfmailparam file="d:\websites\mysite\resources\pdf1.pdf"> 
    Body of the email 
</cfmail> 
+0

URLからそれを行う方法はありませんか? – froadie

+0

@froadie避けようとしている問題は何ですか?あなたのサーバーや他のどこかのpdfですか? – Antony

+0

どこか他の... – froadie

1

CFHTTPを使用してサーバーにファイルを取得し、getTempFile()|| getTempDirectory()はこのファイルを一時的に保管し、最後にCFMAILPARAMを使用してこのファイルを添付します。

編集:あなたは、HTML形式の電子メールを送信している場合

<cfset tempFile = getTempDirectory(getTempFile()) /> 
<cfhttp url="http://myfilelocation/pdfFile.pdf" method="get" file="#tempFile#"></cfhttp> 

<cfmail to="[email protected]" from="[email protected]" subject="Subject" type="html"> 
   <cfmailparam file="#tempFile#"> 
   Body of the email 
</cfmail> 

+0

サンプルコードはどうですか? – froadie

+0

申し訳ありませんが、投稿は編集済みです。 – LarZuK

+0

Micah

0

あなたのコードはテキストファイルでのみ正常に動作します。他のファイルについては、データの変換が必要です。以下を参照してください:

<cfhttp method="get" url="http://myfilelocation/pdfFile.pdf"> 
<!---conversion---> 
<cfif IsSimpleValue(cfhttp.Filecontent)> 
    <cfset content = cfhttp.Filecontent> 
<cfelse> 
    <cfset content = cfhttp.Filecontent.toByteArray()> 
</cfif> 

とのcfmailparamが好き:

<cfmailparam file="#fileNameOfYourChoice#" type="#cfhttp.Mimetype#" content="#content#" /> 

これは特別なURL(例:http://myfilelocation/pdfFile.pdf?querystring=1またはhttp://myfilelocation/notPdfFileName/)で動作し、また、あなたが送信した場合、我々は

関連する問題