当字符串为31或更多字符时,PHPMail会丢失换行符

时间:2018-04-04 15:59:19

标签: php phpmailer

我在网站的联系页面中有代码,用于汇总用户的条目并将其放入电子邮件正文中。这是一系列这样的行:

$email_message .= "Name: ".clean_string($name)."\r\n";
$email_message .= "Address: ".clean_string($address)."\r\n";
$email_message .= "City: ".clean_string($city)."\r\n";
$email_message .= "State: ".clean_string($state)."\r\n";
$email_message .= "Zip: ".clean_string($zip)."\r\n";

clean_string是一个删除一些会搞砸的东西的函数。这是代码:

function clean_string($string) {
  $bad = array("content-type","bcc:","to:","cc:","href");
  return str_replace($bad,"",$string);
}

在此代码的末尾,我最近添加了一个新行,以包含一个新项目,人们可能会写一些很长的内容。

$email_message .= "Purpose: ".clean_string($purpose)."\r\n";

我发现如果用户输入31个或更多字符,该行和后续行的“\ r \ n”无效,所有这些行一起运行。有30个字符,所有看起来都是正确的,但有31个,它就搞砸了。

我假设我遇到了一些我不知道的限制,但无法确定它是什么。

0 个答案:

没有答案