2016-07-18 4 views
-1

Я пытаюсь отправить электронную почту нажатием кнопки отправки формы, но после отправки данной формы сообщение появляется как «Ваше письмо отправлено успешно! Спасибо за ваши отзывы», но на самом деле письмо не отправляется на адрес заданный идентификатор электронной почты, введенный пользователем в форме ... пожалуйста, помогите мне решить данную проблему !!!Как отправить электронные письма из формы submit?

//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:'.'[email protected]'."\r\n"; // Sender's Email 
$headers = 'Cc:'.'[email protected]'."\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("[email protected]", $subject, $message, $headers); 
echo "Your mail has been sent successfuly ! Thank you for your feedback"; 
} 
} 
} 
?> 
+0

в поле формы, почему вы используете 'действие = "#" '? –

+0

у вас есть настоящий хост? – Hamid

+0

да у меня есть ..... – Rkboss

ответ

1

Похоже, что ваша почта не работает должным образом. Вы можете попробовать отладку с помощью var_dump или что-то в этом роде.

Кроме того, ваш код логически неверен. Он должен показывать сообщение только тогда, когда функция почты успешно выполняется.

$send_mail = mail("[email protected]", $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!"; 
} 
+0

Я отредактировал мой код, он показывает «bool (false) Ошибка отправки по электронной почте! " ошибка. – Rkboss

+0

К сожалению, функция почты не настроена достаточно, чтобы показать вам соответствующее сообщение об ошибке. Он возвращает только true и false. Если вы хотите более надежный способ, вы должны использовать PHP Mailer. –

0

Вы должны использовать URL-адрес файла php или использовать пробел в действии. Здесь вы должны использовать действие пустое.

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

вместо

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