【问题标题】:Forum email address display issue论坛邮箱地址显示问题
【发布时间】:2017-07-04 06:05:10
【问题描述】:

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

这是我的 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!");

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

我该如何解决这个问题?

谢谢!

【问题讨论】:

    标签: php forum


    【解决方案1】:

    mail() 的第三个参数就是消息的实际正文,你保存为$messagefourth 变量是您定义标头的位置,也是您定义邮件是谁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!";
    ?>
    

    希望这会有所帮助! :)

    【讨论】:

    • 您好,我复制并粘贴了您的代码。我仍然收到一条错误消息。查询未通过。
    【解决方案2】:

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

    $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 值

    【讨论】:

    • 感谢您的帮助。我仍然收到一条错误消息。查询未通过。
    猜你喜欢
    • 2012-10-28
    • 1970-01-01
    • 2018-05-23
    • 2011-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多