Coldfusion 2016, как включить шаблон при использовании cfscript mail()?
Простой пример того, что я пытаюсь сделать, используя код на основе тегов:
<cfmail
to="someone@x.com"
from="someone@y.com"
subject="howdy"
type="html">
<cfinclude template="path/to/emailtemplates/sometemplate.htm"/>
</cfmail>
Я испробовал всевозможные решения с использованием cfscript и нахожусь на контрольно-пропускном пункте. Я думал, что это может сделать это, но увы нет.
savecontent variable="mailBody" {
include "path/to/emailtemplates/sometemplate.htm";
};
mail = new mail();
mail.setTo( "someone@x.com" );
mail.setFrom( "someone@y.com" );
mail.setSubject( "howdy!" );
mail.setType( "HTML" );
mail.setBody( mailBody );
mail.send();
Мы не отправляем электронные письма, состоящие из нескольких частей - только HTML. Есть ли способ сделать это в сценарии?
1 ответ
Проблема в том, что в cfinlcude
Вы не сможете включить HTML
файл. Похоже, вам понадобится помощь FileRead()
функция вместо включения.
mailBody=FileRead('absolute/path/to/emailtemplates/sometemplate.htm' [, charsetIfNeeded]);
За FileRead
Для работы вы должны указать абсолютный путь к текстовому файлу на диске или в памяти на сервере.
Не уверен, что это ответ на первоначальный вопрос, но, к сожалению, в coldfusion 10 я имел обыкновение указывать CF обрабатывать другие файлы, кроме cfm. В вашем приложении используйте эту строку:
<cfset THIS.compileextforinclude = "htm" />