Coldfusion 2016, как включить шаблон при использовании cfscript mail ()? - PullRequest
0 голосов
/ 04 июня 2018

Простой пример того, что я пытаюсь выполнить, используя код, основанный на тегах:

<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.Есть ли способ сделать это в сценарии?

Ответы [ 2 ]

0 голосов
/ 15 марта 2019

Не уверен, отвечает ли это на первоначальный вопрос, но, к вашему сведению, в coldfusion 10 Я имел обыкновение указывать CF обрабатывать другие файлы, кроме cfm.В вашем приложении используйте эту строку:

<cfset THIS.compileextforinclude = "htm" />
0 голосов
/ 05 июня 2018

Проблема в том, что в cfinlcude вы не сможете включить файл HTML.Похоже, вам понадобится помощь функции FileRead() вместо include.

mailBody=FileRead('absolute/path/to/emailtemplates/sometemplate.htm' [, charsetIfNeeded]);

Для работы FileRead необходимо указать абсолютный путь к дискуили текстовый файл в памяти на сервере.

...