Я пытаюсь создать контактную форму внизу страницы. Я использую PHPMailer и пытаюсь получать электронные письма в своей учетной записи gmail. Каждый раз, когда я отправляю форму, мой url изменяется на url/email.php, и я получаю пустую страницу. Что я делаю не так? Может ли кто-нибудь увидеть вопиющую ошибку, которой я, очевидно, не хватает?PHPMailer не отправляет электронное письмо через Gmail, возвращает пустую страницу
HTML:
<div class="container-fluid">
<form action="email.php" id="contact-me" method="post" name="contact-me">
<div class="row-fluid">
<div class="form-group">
<div class="col-md-3 col-md-offset-3">
<input class="input" name="name" id="name" placeholder="Name" type="text">
</div>
<div class="col-md-3">
<input class="input" id="email" name="email"
placeholder="Email" type="text">
</div>
</div>
</div>
<div class="form-group">
<textarea class="input input-textarea" id="message" name="message" placeholder="Type your message here" rows=
"5"></textarea>
</div>
<input name="send" class="send" type="submit" value="Get In Touch">
</form>
</div>
</section>
PHP:
<?php
if (isset($_POST['submit']))
{
require('PHPMailer-master/PHPMailerAutoload.php');
require_once('PHPMailer-master/class.smtp.php');
include_once('PHPMailer-master/class.phpmail.php');
$name = strip_tags($_Post['name']);
$email = strip_tags($_POST['email']);
$msg = strip_tags($_POST['message']);
$subject = "Message from Portfolio";
$mail = new PHPMailer();
$mail->isSMTP();
$mail->CharSet = 'UTF-8';
$mail->Host = 'smtp.gmail.com';
$mail->SMTPAuth = true;
$mail->SMTPSecure = 'tls';
$mail->Port = 587;
$mail->Username = '[email protected]';
$mail->Password = '***********';
$mail->From = $email;
$mail->FromName = $name;
$mail->AddAddress("me.com", "Katia Sittmann");
$mail->AddReplyTo($email, $name);
$mail->isHTML(true);
$mail->WordWrap = 50;
$mail->Subject =$subject;
$mail->Body = $msg;
$mail->AltBody ="No message entered";
if(!$mail->send()) {
echo 'Message could not be sent.';
echo 'Mailer Error: ' . $mail->ErrorInfo;
exit;
}else{
header("Location: thank-you.html");
}
}
?>
Вы используете 'isset()', который замаскирует любое уведомление о 'submit', не соответствующем поле формы' send'. – mario
попробуйте использовать try catch и посмотрите, подскажет ли он вам что-нибудь –
Итак, если я выберу isset(), я должен использовать что-то в этом месте? Я также попытался поймать попытку и ничего не нашел. Некоторое время сеть выдавала ошибку 500, но мне нужно было изменить порт, чтобы исправить это и сделали это. Все еще получаю пустую страницу и нет электронной почты. – user2832346