这是我的代码:
$body = "Name:{$name}".PHP_EOL;
$body .= "Phone:".$phone.PHP_EOL;
$body .= "Email:".$email."\n\n";
$body .= "Comments:".$comments."\n\n";
$headers = 'From: MAILER <'.$emailTo.'>' . "\r\n" . 'Reply-To: '. $email."\r\n";
$headers .= "Content-Type: text/html; charset=UTF-8";
mail($emailTo, "New message", $body, $headers);
你可以看到我试图使用,\ r \ n \,\ n \ n,PHP_EOL等...... 它唯一的工作方式是当我删除我的“内容类型”标题。 任何人都知道为什么会这样?!
答案 0 :(得分:3)
由于您要发送HTML电子邮件,因此需要使用<br>
来设置换行符。好吧,或者将<pre></pre>
标签中的所有内容包装起来以兑现\ n。如果您在输出中不需要HTML,只需将内容设置为'text/plain'
,就会显示换行符。
由于它不是多部分,因此请尝试将MIME-Version: 1.0
添加到标头中。这可能有助于内容类型。
$headers .= "MIME-Version: 1.0\r\nContent-Type: text/plain; charset=UTF-8";
答案 1 :(得分:1)
用作示例中的解释
$toemail=$emailid;
$subject="You have registered successfully , please activate your account.";
$msgbody.='<table width="100%" align="center" cellpadding="5" cellspacing="0" border="0">';
$msgbody.='<tr><td>Admin Approved your profile and the details are : </td></tr>';
$msgbody.='<tr><td>Username : '.$username.'</td></tr>';
$msgbody.='<tr><td>Email : '.$emailid.'</td></tr>';
$msgbody.='<tr><td>Password : '.$_SESSION['fan_user_password'].'</td></tr>';
$msgbody.='<tr><td><a href="'.BASE_URL.'activate/fan/'.$lastid.'/'.$activation_code.'">';
$msgbody.='Click here </a>to activate your account.</td></tr>';
$msgbody.='</table>';
mail($toemail,$subject,$msgbody,$from='');