【问题标题】:Form Not Sending Email Data PHP表单不发送电子邮件数据 PHP
【发布时间】:2020-04-22 13:51:49
【问题描述】:

所以我按照以下video 设置我的电子邮件 PHP 表单。我将表格上传到我的网站进行测试。我在垃圾邮件收件箱中收到了这封电子邮件,但没有发送任何数据(姓名、电子邮件、消息等)。我需要帮助找出我做错了什么。

HTML

<form action="mailDeveloper.php" method="POST">
            <p>Name:</p><input type="text" name="name" placeholder="John Smith" required autocomplete=""><br>
            <p>Email:</p><input type="email" name="email" placeholder="example@example.com" required autocomplete=""><br>
            <p>Subject:</p><input type="text" name="subject" placeholder="Support" required autocomplete=""><br>
            <p>Message:</p><textarea name="message" placeholder="Comments, questions, and anything else" required></textarea><br>
            <input type="submit" value="Submit">
        </form>

PHP

<?php

if(isset($_POST['submit'])) {
    $name = $_POST['name'];
    $subject = $_POST['subject'];
    $mailFrom = $_POST['email'];
    $message = $_POST['message'];
}

$mailTo = "info@lpstories.com";
$headers = "From: ".$mailFrom;
$txt = "You have received an email from ".$name.".\n\n".$message;

mail($mailTo, $subject, $txt, $headers);
header("Location: index.php?mailsend") or die("There was an error, and your email did not send!");
?>

【问题讨论】:

标签: php email post contact-form-7


【解决方案1】:

当您缺少标题时,请尝试以下代码:
遗失的部分
$headers ="Content-type:text/html;charset=iso-8859-1" 。 "\r\n";
    if(isset($_POST['submit'])) {
    $name       = $_POST['name'];
    $subject    = $_POST['subject'];
    $mailFrom   = $_POST['email'];
    $message    = $_POST['message'];
    $to         =  $mailFrom;    //brokeremail
    $from       =  "navalkishor2005@gmail.com";     //visitoremail
    $subject    =  "Sun Capital : Forgot Password";
    $logo       =  "";
    $messageRes = "";
    $messageRes.="<table align='center' width='490' style='font-family:Arial,Helvetica,sans-serif; background-color: rgb(255, 255, 255); border: 3px solid rgb(64, 64, 64); width: 610px;'>";
    $messageRes.="<tr>";
    $messageRes.="<td align='center' style='border: 2px solid rgb(65, 65, 65);background-color:#EDEDED'>";
    $messageRes.="<img src='$logo'></td></tr>";
    $messageRes.="<tr><td>&nbsp;</td></tr>";
    $messageRes.="<tr><td   >Dear Admin,</td></tr>";
    $messageRes.="<tr><td>User with following details contact you.</td></tr>";
    $messageRes.="<tr><td></td></tr>";
    $messageRes.="<tr><td>";
    $messageRes.="<table>";
    $messageRes.="<tr><td style='line-height: 24px; width: 160px;'><b>Name: </b></td><td>".$name."</td></tr>";
    $messageRes.="<tr><td style='line-height: 24px; width: 160px;'><b>Subject:</b>  </td><td> ".$subject."</td></tr>";
    $message.="<tr><td style='line-height: 24px; width: 160px;'><b>Message: </b></td><td>".$message."</td></tr>";
    $messageRes.="</table>";
    $messageRes.="</td></tr>";
    $messageRes.="<tr><td>&nbsp;</td></tr>";
    $messageRes.="<tr><td >Thank You,</td></tr>";
    $messageRes.="<tr><td >Support Team.</td></tr>";
    $messageRes.="</table>";
    $messageRes;
    $headers ="MIME-Version: 1.0" . "\r\n";
    $headers .="Content-type:text/html;charset=iso-8859-1" . "\r\n";
    $headers .="From: $from" . "\r\n";
    $abc=@mail($to,$subject,$messageRes,$headers);
    header("Location: index.php?mailsend") or die("There was an error, and your email did not send!");
    }

【讨论】:

  • 为什么?为什么你认为这段代码可以工作,但 OP 不行?作为旁注,您可能不应该在此处发布公司名称和电子邮件地址,我建议您编辑并删除这些详细信息。
  • 作为需要帮助的人没有包含 $headers .="Content-type:text/html;charset=iso-8859-1" 。 "\r\n";以上代码已经过测试,我在过去 8 年一直在使用它。
  • 我现在看到您确实在答案的顶部解释了这一点,这是我评论的重点 - 答案需要解释,而不仅仅是代码。我错过了它,因为它格式错误,看起来只是一大块代码。您可以对其进行编辑以解决该问题并使您的答案质量更高。
猜你喜欢
  • 1970-01-01
  • 2014-05-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-09-04
相关资源
最近更新 更多