2017-02-27 89 views
2

當發送者填寫自己的狀態, 的評論框,我可以看到發送者的名字,我可以收到該消息。但是,我無法回覆電子郵件地址 ,因爲電子郵件地址爲空。郵寄地址的形式不包括髮件人的電子郵件

在PHP如下:

<?php 

$name=$_POST['name']; 
$telephone=$_POST['telephone']; 
$email=$_POST['email']; 
$date=$_POST['date']; 
$location=$_POST['location']; 
$comments=$_POST['comments']; 
$to="[email protected]"; 
$subject="new mesage"; 

mail($to,$subject,$comments,"From:".$name); 
echo "Your message has been sent. Thank you for your enquiry"; 

?> 
+0

請注意[php docs](http://php.net/manual/en/function.mail.php)中的警告「additional_headers沒有郵件頭注入保護,因此用戶必須確保指定的頭文件是安全的並且只包含頭文件。即永遠不要通過放置多個換行符來啓動郵件正文。「看到這個[提問/回答(http://stackoverflow.com/questions/11952473/proper-prevention-of-mail-injection-in-php?answertab=votes#tab-top)以獲取更多的信息 – Theo

回答

1

現在,您要將$name變量放在應該放置發件人電子郵件地址的字段中($email)。你可以同時使用,但不幸的是你需要把它們拼湊在一起,因爲PHP郵件功能並不適合你。

您可以像這樣同時添加:

mail($to, $subject, $comments, 'From: "' . $name . '" <' . $email . '>') 

注意,你需要這樣的字符串內的雙引號字符,它可以得到一個有點冒險,但你可以使用'避免需要獲得更多的複雜。

如果$name是「Bob」並且$email是「[email protected]」,那麼所有這些應該看起來像:'From: "Bob" <[email protected]>'。另請參見:this question on how to format email headers

1

第四個參數的函數mail()接受附加報頭。例如:

$headers = 'From: ' . $email . "\r\n" . 'Reply-To: ' . $email . "\r\n"; 

mail($to, $subject, $comments, $headers); 

您需要Reply-To標題。

相關問題