论坛邮箱地址显示问题

时间:2017-07-03 21:56:43

标签: php forum

我使用下面的脚本创建了一个网络论坛。我可以收到我网站的查询;但是,访问者的电子邮件地址未显示在网站管理员发送的电子邮件中。我想在这里有一些指导来解决这个问题。

这是我的PHP脚本:

<?php $name = $_POST['name'];
$email = $_POST['email'];
$message = $_POST['message'];
$formcontent="From: $name \n Message: $message";
$recipient = "abc@gmail.com";
$subject = "Contact Form";
mail($recipient, $subject, $formcontent) or die("Error!");
echo "Thank You!";
?>

以下是我从网站站长处获得的信息: 来自:xx 消息:xx

网站管理员发送的电子邮件中未列出任何电子邮件地址。

我在网上发现了一些类似的脚本,还有两行:

$mailheader = "From: $email \r\n";
mail($recipient, $subject, $formcontent, $mailheader) or die("Error!");

这实际上给了我一个错误输出。

如何解决问题?

谢谢!

2 个答案:

答案 0 :(得分:0)

您可以在邮件功能中添加标题。

$name = $_POST['name'];
$email = $_POST['email'];
$message = $_POST['message'];
$formcontent="From: $name \n Message: $message";
$recipient = "abc@gmail.com";
$subject = "Contact Form";

$headers  = "MIME-Version: 1.0" . "\r\n";
$headers .= "Content-type:text/html;charset=UTF-8" . "\r\n";
$headers .= "From: <$email>" . "\r\n";

mail($recipient, $subject, $formcontent, $headers);

仅供参考 - 在以这种方式使用它们之前,我会对所有POST值进行测试和验证

答案 1 :(得分:0)

mail()的第三个参数只是邮件的实际正文,您已将其保存为$message第四个变量是您定义标头的位置,您可以在其中定义邮件的身份From。请注意,您实际上并不需要将邮件作为标题传递,因此,您的变量$formcontent不应包含From:标头。但是,您执行需要在提供的电子邮件地址后以"\r\n"的形式提供回车。

修改后的代码如下所示:

<?php
$name = $_POST['name'];
$email = $_POST['email'];
$message = $_POST['message'];
$formcontent = "From: $name" . "\r\n";
$recipient = "abc@gmail.com";
$subject = "Contact Form";
mail($recipient, $subject, $message, $formcontent) or die("Error!");
echo "Thank You!";
?>

希望这有帮助! :)