Mailto表单不包含发件人的电子邮件

时间:2017-02-27 22:18:38

标签: php

当发件人填写表单的评论框时,我会收到该消息, 我可以看到发件人的名字。但是,我无法回复电子邮件 因为电子邮件地址是空白的。

php如下:

<?php

$name=$_POST['name'];
$telephone=$_POST['telephone'];
$email=$_POST['email'];
$date=$_POST['date'];
$location=$_POST['location'];
$comments=$_POST['comments'];
$to="info@hsphotography.co.uk";
$subject="new mesage";

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

?>

2 个答案:

答案 0 :(得分:1)

mail()函数的第四个参数接受了额外的标题。例如:

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

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

您需要Reply-To标题。

答案 1 :(得分:1)

现在您将$name变量放在您应该放置发件人电子邮件地址($email)的字段中。你可以同时使用它们,但遗憾的是你需要将它们一起破解,因为PHP邮件功能不适合你。

您可以像这样添加:

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

请注意,您需要在字符串中包含双引号字符,这可能会有点冒险,但您可以使用'来避免变得更复杂。

如果$name是“Bob”且$email是“bob@test.test”,则所有这些应该如下所示:'From: "Bob" <bob@test.test>'。另请参阅this question on how to format email headers