CF 8.0.1 でこれを試していますが、失敗しています。次のように、カスタム値をカスタム タグに渡そうとしています。
<cf_call ckmail="#{to='test@test.com',from='test@test.com',subject='Error reported',mailserver='mail.domain.com',username='1234',password='tested'}#">
カスタムタグ call.cfm には、次のものがあります。
<cfparam name="attributes.ckmail" default="">
<cfmail attributecollection = "#attributes.ckmail#">
私が得ているエラーは次のとおりです。
11 行目の 18 列目に無効な CFML 構造が見つかりました。ColdFusion は次のテキストを参照していました: {
CF9 では正常に動作していますが、CF8.0.1 (または以前のバージョン) では上記のメッセージで失敗しています。
2012 年 7 月 18 日のコード更新
ダンのコードを使用してみましたが、別の問題に直面しています。カスタムタグでは、このように使用しています
<cfset emailSetting = StructNew()>
<!--- loop our query string values and set them in our structure --->
<cfloop list="#attributes.ckmail#" index="key" delimiters=",">
<cfset emailSetting["#listFirst(key,'=')#"] = urlDecode(listLast(key,"="))>
</cfloop>
<cfdump var="#emailSetting#"><cfabort>
<cfmail attributecollection = "#emailSetting#">
上記はカスタムタグの設定です。コードから次のように呼び出しました
<cf_call ckmail="to=i@test.com,from=test@domain.com,subject='Error reported',
server=mail.domain.com,username=test@domain.com,password=tes@,type=html">
今私が得ているエラーは、「smtp」サーバーが定義されていないということです。
cfadmin に smtp の詳細を追加すると機能します。入力したフィールドの値が無視される可能性がありますが、cfadmin にも smtp 設定が定義されていない場合はエラーが表示されます。