我的变量没有响应<;br>;标记


my variable is not echoing <br> tag when it gets to the mail function

我正在创建自己的联系人表单,并通过变量将所有输入发送到邮件功能

但是有一个错误…我的代码如下。。。

$from = $_POST["from"];
 // sender
$name = $_POST["name"];
$subject = $_POST["subject"];
$message = $_POST["message"];
// message lines should not exceed 70 characters (PHP rule), so wrap it
$message = wordwrap($message, 70);
$phone = $_POST["phone"];
$mytour = $_POST["select1"];
$howmany = $_POST["select2"];
$arrival = $_POST["arrival"];
$departure = $_POST["departure"];
$accommodation = $_POST["select3"];
$company = $_POST["company"];
// send mail
$messagecontent = "Name:$name , " . "Email:$from ," . "Nature of Enquiry:$subject ," . "Message:$message ," . "Phone No:$phone, " . "My Tour Wish List: $mytour, " . "How many days do you have available:$howmany, " . "Arrival Date:$arrival ," . "Departure Date:$departure ," . "My Preferred Accommodation:$accommodation, " . "Company Name:$company ,";
// $messagewithbreak=str_replace(',',', <br/>;',$messagecontent); // code replaces all your commas with , and a <br> tag
mail("abc@gmail.com", " Contact form Filled", "$messagewithbreak", "From: $from'n");
echo "Thank you for sending us feedback";
}

但当我在电子邮件中收到它时。。。没有中断标签CCD_ 1标签。。。并且它接收作为…

Name: , Email:abc@gmail.com ,Nature of Enquiry:none ,Message:none ,Phone No:none,My Tour Wish List: Heritage Tour of Kells,How many days do you have available:Half a Day, Arrival Date:2014-09-10 ,Departure Date:2014-09-10 ,My Preferred Accommodation:Hostel,Company Name:none

但我希望它能在电子邮件中正确显示。。。。因为这不是专业的方式。。。要看到电子邮件,而且很难阅读这样的电子邮件。。。。。

我该怎么办请帮我…

我将非常感谢你的帮助。

请回答我的问题,这里什么都帮不了我。我试过了。。jenz和rakesh给我的方法,但当收到电子邮件时,仍然显示为没有换行符的段落。。。。变得越来越令人沮丧

为什么一次又一次地连接消息字符串。同时删除mail()中变量的双引号

$messagecontent="Name:$name , Email:$from , Nature of Enquiry:$subject , Message:$message , Phone No:$phone, My Tour Wish List: $mytour, How many days do you have available:$howmany, Arrival Date:$arrival , Departure Date:$departure , My Preferred Accommodation:$accommodation, Company Name:$company ,";
$messagewithbreak=str_replace(',',',<br>',$messagecontent);
mail("abc@gmail.com"," Contact form Filled", $messagewithbreak, $from);

正确地为消息添加格式。任何放在双引号内的HTML标记在回显时都会转换为标记。因此,您只需要在消息内容的适当位置添加<br>。此外,双引号内的所有PHP变量都将被其值替换。所以不需要在每个字符串后面加上双引号。

$messagecontent="Name:$name <br> Email:$from <br>Nature of Enquiry:$subject 
<br>Message:$message<br>Phone No:$phone<br>
My Tour Wish List: $mytour<br>How many days do you have available:$howmany<br> Arrival Date:$arrival <br> Departure Date:$departure <br> My Preferred 
Accommodation:$accommodation<br>Company Name:$company ";

要发送HTML电子邮件,您必须添加标头,这在默认情况下是可选的,我们在其中传递内容类型声明,告诉邮件服务将此电子邮件解析为HTML。

  $headers = "From: " . strip_tags($from) . "'r'n";
  $headers .= "MIME-Version: 1.0'r'n";
  $headers .= "Content-Type: text/html; charset=ISO-8859-1'r'n";

并在类似mail()的中通过$headers

mail("abc@gmail.com", " Contact form Filled", $messagecontent, $headers);

您正试图在纯文本电子邮件中使用HTML。如果您只想换行,请使用''n而不是br标记。

如果你想在电子邮件中使用HTML,你必须添加一个内容类型的标题。有关示例,请参阅PHP邮件文档。

// send mail
$messagecontent = "Name:$name 'n ";
$messagecontent.= "Email:$from 'n";
$messagecontent.= "Nature of Enquiry:$subject 'n";
............
...............

这样设置所有变量。