2011-04-13 87 views
6

我開發了一個簡單的php聯繫表格,工作正常,但我無法根據我的要求格式化郵件正文,我的代碼如下,我正在以單行格式發送郵件,如何格式化郵件正文?

,我想在這樣
「名稱的新線上的每個信息:賽義德·艾哈邁德Sheeraz
聯繫電話:03453594552
電子郵件:[email protected]
地址:R-47,扇9,城北
要求:你好,你好嗎「

<?php 
$to = "[email protected]"; 
$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."; 
?> 

回答

13

由於您的電子郵件未標記爲具有HTML正文(並且具有HTML正文的電子郵件實際上應具有包含純文本和純文本的多部分MIME正文,因此您希望新行(\n)不是HTML換行符(<br>) HTML版本,因爲「HTML only」是垃圾郵件檢測器的好標誌)。

+0

+1我之前剛剛發佈:) – MRW 2011-04-13 08:16:31

+0

感謝救自己很多,它的工作。 – Sheery 2011-04-13 08:18:47

5

如果您的電子郵件是以文本形式發送的,那麼
標籤將不會執行任何操作。例如,嘗試使用新行字符:

$ MESSAGE_BODY =「Name:」。$ _ POST [「name」]。「\ n」;

這應該排序你的問題。

在上面的例子中<br>是打印後變量打印的,爲什麼?如何刪除<br> 例如:

$_Post["name"]具有值「jhon」。
它打印:jhon<br>

5

正如您在您的電子郵件內容中使用html標記。

設置content- typetext/html在郵件的標題

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

OR

你可以從這種類型的問題,使用phpmailer