我正在处理其中一个邮件表单有问题的网站。当用户将文本输入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?">
Post as Announcement?
</td>
</tr>
</cfformgroup>
答案 0 :(得分:12)
要在HTML格式的电子邮件中保留textarea的换行符,您必须使用<br>
标记替换换行符:
reReplace(message, '\n', '<br />', 'ALL')
如果您的电子邮件中没有其他HTML格式的内容,则只需从CFMAIL标记中删除type="HTML"
属性,文本区域中的文本将显示为使用行输入的内容打破完好。
答案 1 :(得分:2)
我会使用@imthepitts的答案,但只是添加一些其他选项,你也可以使用
replace(message, chr(10), '<br />', 'ALL')
或
<cfmail type="html">
<pre>
#message#
</pre>
</cfmail>
注意:标记,故意左对齐,以防止电子邮件中出现意外缩进。
答案 2 :(得分:0)
尝试使用丰富的textarea。
<cftextarea name ="message" richtext="true"
other attributes
>
</cftextarea>
答案 3 :(得分:0)
在您的CFmail中,您可以使用#paragraphformat(message)#
,这将保持您的换行符。