【问题标题】:My server's name shows up as submitter's Reply-to email address from PHP contact Form我的服务器名称显示为 PHP 联系表单中提交者的回复电子邮件地址
【发布时间】:2026-01-30 01:00:02
【问题描述】:

我不精通 PHP,并且为我构建了这个表单。它在 95% 的时间内都有效,但有时回复电子邮件会是 johnsmith@hadrian.lunarpages.com

我正在阅读类似的 issue on this page,但不确定要在我的表单中更改什么...

<?php
if (isset($_REQUEST['btnSubmit-group'])) {
    $date = $_REQUEST['date'];
    $time = $_REQUEST['time'];
    $count = $_REQUEST['count'];
    $name = $_REQUEST['name'];
    $organization = $_REQUEST['organization'];
    $email = $_REQUEST['email'];
    $grouptype = $_REQUEST['grouptype'];   
    $phone = $_REQUEST['phone'];
    $upgrademus = $_REQUEST['upgrademus'];
    $upgradeowo = $_REQUEST['upgradeowo'];
    $comments = $_REQUEST['comments'];
    $ip = isset($_SERVER['REMOTE_ADDR']) ? $_SERVER['REMOTE_ADDR'] : '';

    if ($count == "" || $name == "" || $email == "" || $phone == "") {
        echo "All fields are required, please fill out again. ";
    } else {
        $to = 'info@example.com';
        $subject = "Group Tour Inquiry from $name ($date, $count people)";
        $from = $to;
        $ip = isset($_SERVER['REMOTE_ADDR']) ? $_SERVER['REMOTE_ADDR'] : '';

        $body = nl2br("Private Tour:<br>" .
                "<b>Name:</b>   $name\r\n" .
                "<b>Email:</b>  $email \r\n" .
                "<b>Phone:</b>  $phone \r\n" .
                "<b>Organization:</b>     $organization\r\n" .
                "<b>Date:</b>     $date\r\n" .
                "<b>Time:</b>     $Time\r\n" .
                "<b>Count:</b>     $count\r\n" .
                "<b>Include:</b>     $upgrademus\r\n" . 
                "<b>Include:</b>     $upgradeowo\r\n" .
                "<b>Comments:</b>     $comments\r\n" .
                "");
// To send HTML mail, the Content-type header must be set
        $headers = 'MIME-Version: 1.0' . "\r\n";
        $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
        $headers .= "From: $name<$email> \r\n";
        $headers .= "Reply-To: $email \r\n";

        if (mail($to, $subject, $body, $headers)) {
            echo "<div class=\"thankyou\"></div><meta http-equiv='refresh' content='0;url=http://www.example.com/private-group-tours'>";
        }
    }
} else {}  ?>

【问题讨论】:

  • 可能当表单提交者将无效的内容作为电子邮件地址放入时

标签: php forms header


【解决方案1】:

您正试图从输入此邮件的人那里向您自己发送电子邮件,实际上是在试图欺骗他们的电子邮件,有时这会(应该)被阻止。更多内容可以在这里阅读 - problem with php mail 'From' header

变化:

    $headers .= "From: $name<$email> \r\n";
    $headers .= "Reply-To: $email \r\n";

    $from = 'Admin@mysite.com';

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

然后编辑该静态 $from 变量。然后将用户的电子邮件从您收到的电子邮件的正文中取出,然后向他们发送电子邮件。

【讨论】:

  • 大多数邮件表单的标准方法,使回复变得容易
  • @Kaylined 谢谢,但是对于最后一个标题,回复,不应该是 $email 吗?你有它的方式,我正在回复我自己的电子邮件地址。所以我有这个: $from = 'info@mysite.com'; $headers .= "发件人:$from\r\n"; $headers .= "回复:$email \r\n";
  • 可以的。唯一的问题是这样的信息不匹配,如果您发送到 gmail 之类的服务,您将被垃圾邮件文件夹。从正文中“复制粘贴”电子邮件地址真的有那么难吗?
最近更新 更多