Я пытаюсь это на CF 8.0.1, но не удается. Я пытаюсь передать пользовательское значение для пользовательского тега, например:Пользовательский тег ColdFusion, вызывающий cfmail как attibuteCollection и ошибка бросания
<cf_call ckmail="#{to='[email protected]',from='[email protected]',subject='Error reported',mailserver='mail.domain.com',username='1234',password='tested'}#">
В пользовательских тегов call.cfm я следующее:
<cfparam name="attributes.ckmail" default="">
<cfmail attributecollection = "#attributes.ckmail#">
Ошибка я получаю:
Недопустимый CFML конструкция находится на линии 11 в колонке 18. ColdFusion смотрел на следующий текст: {
Он работает хорошо в CF9, но в CF8.0.1 (или предыдущей версии) он не работает с указанным выше сообщением.
код Дополнение от 18 июля 2012
Я попытался с помощью кода Дэна, но теперь я столкнулся другой вопрос, в моем Custom Tag я использую как этот
<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="[email protected],[email protected]domain.com,subject='Error reported',
server=mail.domain.com,[email protected],[email protected],type=html">
Ошибка теперь я получаю сервер «SMTP» не определен,
если я добавить детали Smtp в cfadmin это работает, может быть он игнорирует значения в поле я набранный, но он показывает ошибку когда в cfadmin также нет параметров smtp.
так что с помощью Structnew() справа, Btw я передаю его в пользовательский тег, так что немного запутался, как это будет работать – Misty
это будет выглядеть как У него не будет никакого синтаксиса construtor - это все сделано раньше времени. Проверьте первый ответ - пример Мэтта довольно ясен. –