我在 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 日的代码更新
我尝试使用 dan 的代码,但现在我面临一个不同的问题,在我的自定义标签中,我使用的是这样
<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 设置时它会显示错误。