Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/259.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_Email - Fatal编程技术网

Php 如何从表单提交发送电子邮件?

Php 如何从表单提交发送电子邮件?,php,email,Php,Email,我正试图通过单击表单的“提交”按钮发送电子邮件,但在提交给定表单后,消息显示为“您的邮件已成功发送!感谢您的反馈”,但实际上电子邮件并未发送到用户在表单中输入的给定电子邮件id…请帮助我解决给定问题 //secure_email_form.php <body> <div class="container"> <!-- Feedback Form Starts Here --> <div id="feedback"> <!-- Heading

我正试图通过单击表单的“提交”按钮发送电子邮件,但在提交给定表单后,消息显示为“您的邮件已成功发送!感谢您的反馈”,但实际上电子邮件并未发送到用户在表单中输入的给定电子邮件id…请帮助我解决给定问题

//secure_email_form.php
<body>

<div class="container">
<!-- Feedback Form Starts Here -->
<div id="feedback">
<!-- Heading Of The Form -->
<div class="head">
<h3>FeedBack Form</h3>
<p>This is feedback form. Send us your feedback !</p>
</div>
<!-- Feedback Form -->
<form action="#" id="form" method="post" name="form">
<input name="vname" placeholder="Your Name" type="text" value="">
<input name="vemail" placeholder="Your Email" type="text" value="">
<input name="sub" placeholder="Subject" type="text" value="">
<label>Your Suggestion/Feedback</label>
<textarea name="msg" placeholder="Type your text here..."></textarea>
<input id="send" name="submit" type="submit" value="Send Feedback">
</form>
<h3><?php include "secure_email_code.php"?></h3>
</div>
<!-- Feedback Form Ends Here -->
</div>
</body>

//secure_email_code.php
<?php
if(isset($_POST["submit"])){
// Checking For Blank Fields..
if($_POST["vname"]==""||$_POST["vemail"]==""||$_POST["sub"]==""||$_POST["msg"]==""){
echo "Fill All Fields..";
}else{
// Check if the "Sender's Email" input field is filled out
$email=$_POST['vemail'];
// Sanitize E-mail Address
$email =filter_var($email, FILTER_SANITIZE_EMAIL);
// Validate E-mail Address
$email= filter_var($email, FILTER_VALIDATE_EMAIL);
if (!$email){
echo "Invalid Sender's Email";
}
else{
$subject = $_POST['sub'];
$message = $_POST['msg'];
$headers = 'From:'.'info@example.com'."\r\n"; // Sender's Email
$headers = 'Cc:'.'info@example1.com'."\r\n"; // Carbon copy to Sender
// Message lines should not exceed 70 characters (PHP rule), so wrap it
$message = wordwrap($message, 70);
// Send Mail By PHP Mail Function
mail("recievers_mail_id@xyz.com", $subject, $message, $headers);
echo "Your mail has been sent successfuly ! Thank you for your feedback";
}
}
}
?>
//secure\u email\u form.php
反馈表
这是反馈表。将您的反馈发送给我们

你的建议/反馈 //secure_email_code.php
看起来您的邮件功能没有正常执行。您可以尝试使用var_dump或其他方法进行调试

此外,您的代码在逻辑上不正确。它应该仅在邮件函数成功执行时显示消息

$send_mail = mail("recievers_mail_id@xyz.com", $subject, $message, $headers);
var_dump($send_mail);  // See what you get here. It'll probably show false.

if ($send_mail) {
   echo "Your mail has been sent successfuly ! Thank you for your feedback";
} else {
    echo "Email sending failed!";
}

您必须使用php文件url或使用blank。在这里你必须使用动作空白

<form action="" id="form" method="post" name="form"> 

反而

<form action="#" id="form" method="post" name="form">


在表单字段中为什么使用
操作=“#”
?您有真正的主机吗?请在发布问题之前进行一些搜索。。。我编辑了我的代码,它显示“bool(false)Email sending failed!”错误。不幸的是,邮件功能的配置不足以显示相应的错误消息。它只返回true和false。如果您想要一种更可靠的方法,那么应该使用PHP Mailer。