0

我有一个文本区域,其中有电子邮件的正文,其样式如下。但是该电子邮件在 Outlook 中不保留以下任何样式。我有<cfmail type="html"。关于如何保留我在下面的样式的任何想法。额外的 html 标记在我包含在电子邮件中的另一个页脚文件中具有结束标记。

  <textarea  name="email_body">
    <table class="one-column" border="0" cellpadding="0" cellspacing="0" width="100%" style="border-spacing:0" bgcolor="#FFFFFF">
          <tr><td align="left" style="padding:10px 40px 40px 40px"><p style="color:#5f6971; font-size:20px; text-align:left; font-family: Helvetica, Arial, sans-serif"><strong>Dear Dr. <cfoutput>#user.fname# #user.lname#</cfoutput>, </strong></p><p style="color:#5f6971; font-size:16px; text-align:left; font-family: Helvetica, Arial, sans-serif">Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec odio. Quisque volutpat mattis eros. Nullam malesuada erat ut turpis. Suspendisse urna nibh, viverra non, semper suscipit, posuere a, pede.        

        Morbi in sem quis dui placerat ornare. Pellentesque odio nisi, euismod in, pharetra a, ultricies in, diam. Sed arcu. Cras consequat.</p></td></tr></table>
                <strong> <cfoutput>#user.detail#</cfoutput></strong>
              <center><table cellpadding="0" cellspacing="0" border="0" width="100%">
                  <tr><td><table border="0" cellpadding="0" cellspacing="0"><tr><td height="20" width="100%" style="font-size: 20px; line-height: 20px;">&nbsp;</td></tr></table><table border="0" align="center" cellpadding="0" cellspacing="0" style="Margin:0 auto;"><tbody><tr><td align="center"><table border="0" cellpadding="0" cellspacing="0" style="Margin:0 auto;"><tr><td width="250" height="60" align="center" bgcolor="#1a99e6"><a href="http://www.example.net" target="_blank" style="width:250; display:block; text-decoration:none; border:0; text-align:center; font-weight:bold;font-size:18px; font-family: Arial, sans-serif; color: #ffffff; background:#1a99e6" class="button_link">View the User Detail</a></td></tr></table></td></tr></tbody></table></td></tr>
                </table></center></td></tr>
        </table></textarea>
4

2 回答 2

0

您希望 HTML 成为 textarea 的输入内容,对吗?然后,您需要对内容进行编码。

<cfsavecontent variable="content">
    <table class="one-column" border="0" cellpadding="0" cellspacing="0" width="100%" style="border-spacing:0" bgcolor="#FFFFFF">
        <tr>
            <td align="left" style="padding:10px 40px 40px 40px">
                <p style="color:#5f6971; font-size:20px; text-align:left; font-family: Helvetica, Arial, sans-serif">
                    <strong>Dear Dr. <cfoutput>#user.fname# #user.lname#</cfoutput>,</strong>
                </p>
                <p style="color:#5f6971; font-size:16px; text-align:left; font-family: Helvetica, Arial, sans-serif">
                    Lorem ipsum dolor sit amet, ...
                </p>
            </td>
        </tr>
    </table>
    <strong><cfoutput>#user.detail#</cfoutput></strong>
    <p>etc.</p>
</cfsavecontent>

<textarea name="email_body">
    <cfoutput>#encodeForHtml(content)#</cfoutput>
</textarea>

<cfsavecontent>将您想要的输入存储到变量content中。
encodeForHtml()对所述变量的文本进行编码,因此它不会被识别为实际的 HTML/标记(又名<is &lt;>is&gt;等),而是作为文字文本。

于 2017-10-06T18:02:31.573 回答
0

我最近不得不写一个页面让我们的邮件管理员调查交付问题。我用简单的方法做到了。

表单页面

<cftextarea richtext="yes" name="mailBody" rows="80" cols="30" height="500"></cftextarea>

操作页面

<cfmail from="#session.username# <#form.sender#>" 
to="#form.recipients#" subject="Test Mail" type="html">

#form.mailBody#

<p>This mail was sent using ColdFusion.</p>
</cfmail>

它工作得很好。我使用 ColdFusion 版本 9。

于 2017-10-06T18:17:23.523 回答