Php 表格不发送电子邮件
我无法将PHP表单中的信息发送到电子邮件地址。我对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)
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";
}