邮件发送是php联系我们表单失败

时间:2016-04-29 08:28:28

标签: php html email

我正在创建一个contact us表单,因为我正在使用HTML和PHP。现在我的疑问是点击了详细信息未发送到邮件的提交按钮,我想知道我在哪里弄错了码。  这是我的HTML代码,用于创建表单

<form action="sendmail.php" method="post" >
   <table width="100%" border="0"align="center"cellpadding="3"cellspacing="1">
      <tr>
         <td width="10%">Subject</td>
         <td width="2%">: </td>
         <td width="82%"><input name="name" type="text" id="name" size="50"></td>
      </tr>
      <tr>
         <td>Detail</td>
         <td width="2%">: </td>
         <td width="82%"><textarea name="detail" cols="50" rows="4"id="detail"></textarea></td>
      </tr>
      <tr>
         <td>Email</td>
         <td>: </td>
         <td><input name="customer_mail" type="text" id="customer_mail" size="50"></td>
      </tr>
      <tr>
         <td>Name</td>
         <td>: </td>
         <td><input name="name" type="text" id="name" size="50"></td>
      </tr>
      <tr>
         <td><input type="submit" name="send" value="Submit">
            <input type="reset" name="submit" value="Reset">
         </td>
      </tr>
   </table>
</form>

PHP代码如下:

<?php 
  $subject="$subject";
  $message="$detail";
    $mail_from="customer_mail";
//From
$header="from: $name <$mail_from>";
//Enter your email address
$to="simon@abcinfomedia.in";
$sendmail=mail($to,$subject,$message,$header);
//check mail send to ur mail
if($sendmail){
    echo"success";
}
else{
    echo"Error";
}
?>

2 个答案:

答案 0 :(得分:1)

请试试这个:

<?php
if(isset($_POST['send']) && !empty($_POST['send'])) {
$subject = $_POST['subject'];//if you sent by post method else put manually
$message = $_POST['detail'];
$mail_from = $_POST['customer_mail'];
$header = "from: $name <$mail_from>";
//Enter your email address
$to = "simon@abcinfomedia.in";
$sendmail = mail($to, $subject, $message, $header);
//check mail send to ur mail
if ($sendmail) {
    echo "success";
} else {
    echo "Error";
}
}

?>

答案 1 :(得分:0)

这不起作用,因为您没有使用$ _POST [&#39;&#39;]来填充表单中的数据变量。

HTML没有改变,但试试这个PHP:

<?php
$subject   = $_POST['subject'];
$message   = $_POST['detail'];
$mail_from = $_POST['customer_mail'];
$header    = "from: $name <$mail_from>";
$to        = "simon@abcinfomedia.in";

//check mail send to ur mail
if(mail($to,$subject,$message,$header)){
    echo"success";
}
else{
    echo"Error";
}
?>

我使用表单中的$ _POST数据定义了subject,message和mail_from。对于if语句,我删除了将mail()函数存储为变量的部分,并将其直接放入if。

这将同时发送电子邮件并同时进行检查。

在我的测试中,电子邮件有效但存在缺陷,因为您的某些字段缺失且未定义,但我相信上述内容可以解决您的初始问题。 :)