2 Replies Latest reply: Jul 14, 2014 4:39 AM by BKBK RSS

    CFINCLUDE inside CFMAIL

    jackhuang Community Member

      I have a done a CFQUERY and retrieve user's email and name.  Then I try to do a CFMAIL something like:

       

      <cfmail to="#user.email#" from="sender@somewhere.com" subject="Message from #sender_name#" type="html">

      <table><tr><td>

      Dear #receiver_name#

      </td></tr>

      <tr><td>

      #form.message#

      </td></tr>

      </table>

      </cfmail>

       

      This seems to work with CFMAIL and the variables are being populated properly.  However, when I placed the content into a template content.cfm because I want to use it somewhere else as well. So content.cfm has:

       

      <table><tr><td>

      Dear #receiver_name#

      </td></tr>

      <tr><td>

      #form.message#

      </td></tr>

      </table>

       

      and the program became:

       

      <cfmail to="#user.email#" from="sender@somewhere.com" subject="Message from #sender_name#" type="html">

      <cfinclue template="content.cfm">

      </cfmail>

       

      Now the problem is, I am NOT getting the variables (#receiver_name# and#form.message#) populated by Coldfusion when I use the cfinclue template.  Why?  This is driving me crazy.  I don't know why it doesn't work.    Thanks in advance.

        • 1. Re: CFINCLUDE inside CFMAIL
          duncancumming Community Member

          Try this (usually at this point I'd have two versions, HTML and plaintext):

           

          <cfsavecontent variable="content"><cfinclude template="content.cfm"></cfsavecontent>

          <cfmail to="#user.email#" from="sender@somewhere.com" subject="Message from #sender_name#" type="html">

            <cfmailpart type="html">#content#</cfmailpart>

          </cfmail>

           

          Also wrap content.cfm inside <cfoutput></cfoutput>

          • 2. Re: CFINCLUDE inside CFMAIL
            BKBK MVP

            Your code works in cfmail because Coldfusion performs cfoutput implicitly within the cfmail tag. The solution is therefore to add the cfoutput tag in content.cfm, as follows:

             

            <cfoutput>

            <table><tr><td>

            Dear #receiver_name#

            </td></tr>

            <tr><td>

            #form.message#

            </td></tr>

            </table>

            </cfoutput>

             

            Incidentally, your post has a typo: cfinclue instead of cfinclude. This is just a typo to get out of the way, and has nothing to do with the issue.