簡體   English   中英

電子郵件正文中的其他文本

[英]Additional text in the email body

我正在構建一個簡單的訂單系統,並希望在提交表單后發送電子郵件。 我的PHP代碼類似於以下內容:

$name=$_POST["orderName"];
$company=$_POST["orderCompany"];
$email=$_POST["orderEmail"];
$phone=$_POST["orderPhone"];
$headers = "From: $email\r\n" .

$item1=$_POST["orderItem1"];
$qty1=$_POST["orderQty1"];

$item2=$_POST["orderItem2"];
$qty2=$_POST["orderQty2"];

$item3=$_POST["orderItem3"];
$qty3=$_POST["orderQty3"];

$date = date("l, F j Y, G:i") ;

$message="Message sent: $date \n\n

Name: $name\n
Company: $company\n
Email: $email\n
Phone: $phone\n\n

Order:\n
$item1 \tx$qty1\n
$item2 \tx$qty2\n
$item3 \tx$qty3\n";

mail("sales@company.com", "Order", $message, $headers);

效果很好,除了在電子郵件的正文中,在“消息發送...”之前,我一開始就獲得了$ item1字符串的值-就像我將其添加到$ message中一樣(我不這樣做據我所知)。

您在哪里:

$headers = "From: $email\r\n" .

您想要這個:

$headers = "From: $email\r\n";

否則,您會將下一行中的所有內容(恰好是$item1的定義)連接到$headers的末尾。 盡管從技術上講這不是有效的(即,內容是郵件標題的一部分,而不是正文),但是大多數電子郵件客戶端仍然會有效地聳肩並顯示它。

拜托,拜托,在進行生產之前,請在您的POST變量中添加一些消毒措施。

讓我們看看這里:

$email=$_POST["orderEmail"];
$headers = "From: $email\r\n";
mail("sales@company.com", "Order", $message, $headers);

我可以發送POST請求,其中"orderEmail"包含以下內容:

"helo@helo.lv\r\n
 From: viagra@farmacety.net\r\n
 BCC: victim1@domain1.com, victom2@domain3.com"

等。您的無害表格對我向全世界發送垃圾郵件非常有用。 該網站建議

if ( ereg( "[\r\n]", $name ) || ereg( "[\r\n]", $email ) ) {
    [... direct user to an error page and quit ...]
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM