0

電子メールを送信email.cfmするタグ付きのファイルを使用する従来のアプリケーションがあります。cfmail

<cfmail from="abc@123.com" to="def@456.com" subject="New e-mail!">
    // lots of HTML
</cfmail>

ColdFusion Model Glue 3用に更新したいと思います。controllermailのオブジェクトを使用して送信し、本文に CFM ページを含めたい:

var mail = new mail();
mail.setFrom("abc@123.com");
mail.setTo("def@456.com");
mail.setSubject("New e-mail!");
mail.setBody( ** SOME CFM FILE ** );
mail.send();

どうすればこれを行うことができるか誰にもわかりませんか?

4

4 に答える 4

4

cfsavecontent次のように、メールで送信するコンテンツをブロックでレンダリングし、それをメールで使用できます。

<cfsavecontent variable="myemail">
...add some HTML, include another file, whatever...
</cfsavecontent> 
<cfscript>
mail.setBody( myemail );
</cfscript>

http://help.adobe.com/en_US/ColdFusion/9.0/CFMLRef/WSc3ff6d0ea77859461172e0811cbec22c24-7d57.htmlを参照してください。

于 2011-09-23T21:00:30.513 に答える
1

cfset request.emaiBody = cfc.function()のように、CFCを呼び出して変数に割り当てます。次に、それをsetBodyタグに入れます。

于 2011-09-23T21:18:43.910 に答える
1

OPはCFMLを使用することを確信していましたが、最初に尋ねられたように質問に答えました:

var mail = new Mail();
mail.setFrom("abc@123.com");
mail.setTo("def@456.com");
mail.setSubject("New e-mail!");
mail.setType("html");
savecontent variable="mailBody" {
  include "email.cfm";
}
mail.setBody(mailBody);
mail.send();
于 2014-10-02T22:48:12.913 に答える
0

私はコメントで Henry のアドバイスに従い、CFML ベースの CFC を作成しました。

<cfcomponent>

    <cffunction name="SendMail">
        <cfargument name="from"/>
        <cfargument name="to"/>
        <cfargument name="subject"/>

        <cfmail from="#from#" to="#to#" subject="#subject#">
            <!--- HTML for e-mail body here --->
        </cfmail>
    </cffunction>

</cfcomponent>

Dave Long の提案も良いです。これは、 を使用してコンポーネントを作成し、コードをタグ<cfcomponent>でラップするというものです。<cfscript>これにより、同等の cfscript がない場合、または CFML の方が簡単な場合に、CFML にフォールバックすることができます。

<cfcomponent>
    <cfscript>
        void function GetData()
        {
            RunDbQuery();
        }
    </cfscript>

    <cffunction name="RunDbQuery">
        <cfquery name="data">
            SELECT * FROM ABC;
        </cfquery>
        <cfreturn data>
    </cffunction>

</cfcomponent>
于 2011-09-27T20:38:53.520 に答える