PHP:电子邮件发送无效的换行符

时间:2013-04-27 19:04:56

标签: php email

以下PHP代码运行正常,但由于某种原因它没有进行换行。

PHP:

$headers  = "MIME-Version: 1.0\n";
$headers .= "Content-type: text/html; charset=utf-8\n";
$headers .= "From: '".$title."' <".$store_email."> \n";
$subject = "New Payment Received";
//MESSAGE
$message =  "New payment was successfully recieved through paypal payment terminal:";
$message .= "\r\n\nFrom ".$paypal->pp_data['payer_email'];
$message .= "\r\nPaid: ".$paypal->pp_data['payment_gross']." ".$paypal->pp_data['mc_currency'];
$message .= "\r\nDate: ".date('d/m/Y');
$message .= "\r\nTime: ".date('g:i A');
mail($admin_email,$subject,$message,$headers);

不知道有什么不对吗?提前谢谢。

2 个答案:

答案 0 :(得分:5)

您正在发送HTML电子邮件。换行符在HTML中没有意义,您需要<br />个标记。

答案 1 :(得分:0)

直接回答ceejayoz给出的是正确的,因为它是一个html电子邮件,因此需要html元素<br>。 更大的问题是并非所有电子邮件都可以在html中读取(例如:用户不允许使用HTML电子邮件)。发送电子邮件的任何人都应该分两部分发送。一个是html格式的消息,另一个是纯文本的“替代”。通过这种方式,无论电子邮件阅读器如何,收件人都可以阅读电子邮件。 \ r \ n换行符在纯文本替代部分和html <br>或其他元素中工作,以便格式化。 这样做可以避免下一个问题。收件人抱怨我的电子邮件是空白的。