如何格式化邮件的邮件正文?

时间:2011-04-13 08:12:15

标签: php

我已经开发了一个简单的php联系表单,工作正常,但我无法根据我的要求格式化邮件正文,我的代码如下,我收到的是单行格式的邮件,

我想要像这样的新线路上的每一个信息 “姓名:Syed Sheeraz Ahmed
联系电话:03453594552
电子邮件:abc@abc.com
地址:北城9区R-47 要求:你好,你好吗“

<?php
$to = "sheery_1@hotmail.com";
$subject = "From Website Contact Form";
$name = $_REQUEST['name'] ;
$contact = $_REQUEST['contact'] ;
$address = $_REQUEST['address'] ;
$MESSAGE_BODY = "Name: ".$_POST["name"]."<br>"; 
$MESSAGE_BODY .= "Contact No: ".$_POST["contact"]."<br>"; 
$MESSAGE_BODY .= "Email: ".$_POST["email"]."<br>"; 
$MESSAGE_BODY .= "Address: ".$_POST["address"]."<br>"; 
$MESSAGE_BODY .= "Requirement: ".nl2br($_POST["message"])."<br>"; 
$message = $_REQUEST['message' + 'address' + 'contact'] ;
$from = $_REQUEST['email'] ;
$headers = "From:" . $from;
mail($to,$subject,$MESSAGE_BODY,$headers);
echo "Mail Sent.";
?> 

3 个答案:

答案 0 :(得分:15)

您希望新行(\n)不是HTML换行符(<br>),因为您的电子邮件未标记为具有HTML正文(并且具有HTML正文的电子邮件应该具有多部分具有纯文本和HTML版本的MIME主体,因为“仅HTML”是垃圾邮件检测器的一个很好的标志。)

答案 1 :(得分:6)

当您在电子邮件内容中使用html标记时。

在邮件标题中设置content- type text/html

$headers  = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";

OR

您可以使用phpmailer

来避免此类问题

答案 2 :(得分:5)

如果您的电子邮件是以文本形式发送的话,则标签将不执行任何操作。尝试使用新的换行符,例如:

$ MESSAGE_BODY =“姓名:”。$ _ POST [“name”]。“\ n”;

这应该可以解决你的问题。

在上面的示例中<br>是在变量打印后打印的,为什么?如何删除<br> 例如:

$_Post["name"]有价值“jhon” 它打印:jhon<br>