2

我正在一个网站上工作,该网站的其中一个邮件表单有问题。当用户在 a 中输入文本时CFTEXTAREA,它不会保留任何格式(按“输入”不会导致换行)。不是当它存储为变量或通过电子邮件发送时<CFMAIL type="HTML" ..>)。

一位网站管理员声称它曾经可以正常工作。有小费吗?

<cfprocessingdirective suppresswhitespace="No">
    <cfmail to="OMITTED" from="OMITTED" subject="#subject#" type="html">
       #message#    
    </cfmail>
</cfprocessingdirective>

<cfform name="mail" action="./mailinglist.cfm?sendMessage=true" 
       format="#type#" 
       height="400">

  <cfformgroup type="vertical">
      <table width="99%" cellpadding="3" cellspacing="0">
      <tr>
          <td class="form_label">Subject: </td>
          <td class="form_field">
               <cfinput class="textbox" required="yes" 
                    message="Please fill out the subject heading." 
                    style="width:200px;"  
                    type="text" 
                    name="subject" 
                    label="Subject:" width="200">
          </td>
      </tr>
      <tr>
          <td class="form_label">Message: </td>
          <td class="form_field">
                <cftextarea  class="textbox" required="yes" 
                       id="message" 
                       name="message" 
                       message="Please fill out the message body of the form..."
                       style="width:300px; height:150px;" 
                       width="350" height="250" 
                       label="Message:" 
                       wraptext="72" ></cftextarea>
          </td>
      </tr>
      <tr>
          <td class="form_label"></td>
          <td class="form_field" align="left" valign="top">
               <cfinput class="textbox" disabled value="yes"  
                     type="checkbox" 
                     name="announcement" 
                     label="Post as Announcement?">
               &nbsp;Post as Announcement? 
          </td>
      </tr>
      </cfformgroup>
4

4 回答 4

13

要在 HTML 格式的电子邮件中保留文本区域的换行符,您必须将换行符替换为<br>标记:

reReplace(message, '\n', '<br />', 'ALL')

如果您的电子邮件中没有其他 HTML 格式的内容,您可以简单地type="HTML"从 CFMAIL 标记中删除该属性,您的文本区域中的文本将显示为输入时原样,并带有完整的换行符。

于 2013-03-26T00:04:10.527 回答
2

我会使用@imthepitts 答案,但只是添加一些您也可以使用的其他选项

replace(message, chr(10), '<br />', 'ALL')

或者

<cfmail type="html">
<pre>
#message#
</pre>
</cfmail>

注意:标记全部左对齐,以防止电子邮件中出现不必要的缩进。

于 2013-03-26T13:20:08.303 回答
0

尝试使用富文本区域。

<cftextarea name ="message" richtext="true"
other attributes
>
</cftextarea>
于 2013-03-26T00:10:19.500 回答
0

在您的 CFmail 中,您可以使用#paragraphformat(message)#,这将保留您的换行符。

于 2013-03-26T12:36:08.213 回答