【问题标题】:Cfmail and cftextarea not retaining line breakscfmail 和 cftextarea 不保留换行符
【发布时间】:2013-03-15 12:32:51
【问题描述】:

我正在处理一个网站,该网站的其中一种邮件表单存在问题。当用户在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>

【问题讨论】:

  • 如果将#message#变量输出到浏览器,文本是否格式化?

标签: coldfusion cfmail


【解决方案1】:

要在 HTML 格式的电子邮件中保留文本区域的换行符,您必须将换行符替换为 &lt;br&gt; 标签:

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

如果您的电子邮件中没有其他 HTML 格式的内容,您只需从 CFMAIL 标记中删除 type="HTML" 属性,您的文本区域中的文本将显示为输入时原样,并且换行符完好无损.

【讨论】:

    【解决方案2】:

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

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

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

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

    【讨论】:

    • 如果唯一需要的格式是回车,我想我喜欢
       标签回答最好。
    【解决方案3】:

    尝试使用富文本区域。

    <cftextarea name ="message" richtext="true"
    other attributes
    >
    </cftextarea>
    

    【讨论】:

      【解决方案4】:

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

      【讨论】:

      • 不,它没有。一个换行符 = &amp;nbsp;, 2 个换行符 = &lt;p&gt; 所以一个换行符不会根据需要将内容放在下一行。
      猜你喜欢
      • 2020-08-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-01
      • 1970-01-01
      • 2011-07-30
      • 1970-01-01
      相关资源
      最近更新 更多