Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 表格不发送电子邮件_Php_Html_Forms_Email - Fatal编程技术网

Php 表格不发送电子邮件

Php 表格不发送电子邮件,php,html,forms,email,Php,Html,Forms,Email,我无法将PHP表单中的信息发送到电子邮件地址。我对PHP相当陌生。代码如下: if(isset($_POST['submit'])) { $name = $_POST['name']; $email = $_POST['email']; $subject = $_POST['subject']; $message = $_POST['message']; $myEmail = "shivambh28@gmail.com"; if (empty($name) || empty($subject)

我无法将PHP表单中的信息发送到电子邮件地址。我对PHP相当陌生。代码如下:

if(isset($_POST['submit'])) {
$name = $_POST['name'];
$email = $_POST['email'];
$subject = $_POST['subject'];
$message = $_POST['message'];
$myEmail = "shivambh28@gmail.com";

if (empty($name) || empty($subject) || empty($message)) {
  $error = 'Please make sure to double check the fields for errors.';
} elseif (!filter_var($email1, FILTER_VALIDATE_EMAIL)) {
  $error = 'Email is incorrect';
} else {
  $headers .= "From: $email\r\n";
  $headers .= "Reply-To: $myEmail\r\n";
  $headers .= "Return-Path: $myEmail\r\n";
  $headers .= "CC: $email\r\n";
  $headers .= "BCC: $myEmail\r\n";

  if ( mail($to,$subject,$message,$headers) ) {
    $to = $myEmail;
    $subject = $subject;
    $message = $message;
    $from = $email;
    $headers = "From:" . $from;
    echo "Mail Sent.";
  } else {
    echo 'failure to send email';
  }
}
}
HTML:

<form id="contactForm" class="form-horizontal" action="<?php echo get_option('home'); ?>/email/"  method="POST">
    <input id="name" name="name" placeholder="Full Name" type="text">
    <input id="subject" name="subject" placeholder="Subject" type="text">
    <input id="email" name="email" placeholder="Email Address" type="email">
    <textarea placeholder="Your Message" id="message" name="message" rows="10"></textarea>
    <input type="submit" value="SEND" class="btn btn-primary btn-block">
</form>

您的表单缺少
方法
属性。编辑代码,使表单具有
method
POST

<form id="contactForm" class="form-horizontal" action="contact.tpl.php" method="POST">


其次,删除一个
邮件
函数调用。如果没有,您的电子邮件将被发送两次

更改您的代码。它已发送邮件两次

$to = $myEmail;
$subject = $subject;
$message = $message;
$from = $email;
$headers = "From:" . $from;

if ( mail($to,$subject,$message,$headers) ) {

    echo "Mail Sent.";
} else {
    echo 'failure to send email';
}
您的表单方法类似于
POST

<form id="contactForm" class="form-horizontal" action="contact.php" method="post">


您的文件名主要是
contact.php
contact.tpl
而不是
contact.tpl.php
第一个
$headers
变量声明中缺少一个
(句点)。可能有帮助。

表单标记中缺少表单方法POST

<form id="contactForm" class="form-horizontal" action="contact.tpl.php" method="post">

您在
mail()中有错误的参数
$to

试一试

 if ( mail($to,$subject,$message,$headers) ) {

在我看来,好像您正在发送电子邮件,表单的默认方法是
GET
。您需要将
method='POST'
添加到您的
标记中,以便在PHP脚本中使用
$\u POST
。我认为他打算发送两次电子邮件。在
$to
中一次给收件人,一次给他自己(即
$myEmail
),你是否得到了
POST
变量…@MichaelWheeler,
$to
在哪里,然后在他的第一个邮件功能代码中…@Gautam3164,不确定你的意思。。我对PHP非常陌生。请看我最后一行的ans@shivam,这不是问题。查看代码,看起来第二个邮件呼叫正在向他自己发送相同的电子邮件(手动复写?)。签入
垃圾邮件或垃圾邮件文件夹
。如果用户没有填写
姓名或主题等
,则每次检查都要使用
die()
,也要在
邮件发送或未发送后使用
。此代码与OP有何不同?我只是抑制
mail()
可能引发的错误。
 if ( mail($to,$subject,$message,$headers) ) {
$to = $myEmail;
$subject = $subject;
$message = $message;
$from = $email;
$headers = "From:" . $from;
if(@mail($to, $subject, $message, $headers)) {
   echo "Mail Sent";
} else {
   echo "Fail";
}