0
フォームに正しい情報が送信されると、電子メールが送信されたことをユーザーに知らせるメッセージが表示されます。何らかの理由で、電子メールがユーザーによって受信されていません。PHPメールが正しく機能していても、実際には受信していない
私はすでにオンラインでチェックしていますが、無駄です。誰かが私にこの問題を解決するのを助けてくれますか?
以下は、HTMLフォームとPHPの両方のコードです。
<form method="POST" action="contact.php">
<div class="row">
<div class="col-sm-6 form-group">
<input class="form-control" id="name" name="name" placeholder="Name" type="text" required>
</div>
<div class="col-sm-6 form-group">
<input class="form-control" id="email" name="email" placeholder="Email" type="email" required>
</div>
</div>
<textarea class="form-control inputStyle" id="comments" name="comments" placeholder="Comment" rows="6" required></textarea>
<br>
<div class="row">
<div class="col-sm-12 form-group">
<button class="btn btn-default pull-right" name="submit" type="submit">Send</button>
</div>
</div>
<!-- Contacting Support Team -->
<?php
if(isset($_POST['submit'])){
$email = $_POST['email'];
$name = $_POST['name'];
$comment = $_POST['comments'];
if(!empty($email) && !empty($name) && !empty($comment)){
require 'PHPMailer-master/PHPMailerAutoload.php';
$mail = new PHPMailer;
$mail->Host = 'ssl://smtp.gmail.com'; // Specify main and backup SMTP servers
$mail->Port = 465;
$mail->SMTPAuth = true; // Enable SMTP authentication
$mail->Username = '*****'; // SMTP username
$mail->Password = '*****'; // SMTP password
$mail->SMTPSecure = 'tls'; // Enable encryption, 'ssl' also accepted
$mail->From = '*****';;
$mail->addAddress($email); // Name is optional
$mail->isHTML(true); // Set email format to HTML
$mail->Subject = 'Test';
$mail->Body = '$comment';
$mail->AltBody = '$comment';
if(!$mail->send()) {
echo '<div class="alert alert-danger alert-dismissible" id="myAlert">
<a href="#"class="close">×</a>
<strong> Email not sent </strong> Something went wrong.
</div>';
echo 'Mailer Error: ' . $mail->ErrorInfo;
} else {
echo '<div class="alert alert-success alert-dismissible" id="myAlert">
<a href="#"class="close">×</a>
<strong> Email sent!</strong> We will contact you as soon as possible.
</div>';
}
}
}
?>
</form>
ありがとうございます!
を使用するように変更するのいずれかは、電子メールの受信を保証するものではありません。コードが送信されている可能性がありますが、設定したメールサーバーが転送していないか、リモートメールサーバーが拒否しているか、ユーザーの迷惑メールフィルターが迷惑メールを迷惑メールフォルダに入れている可能性があります。さまざまな理由が考えられます。あなたの側から行うことができるのは、メールが正しくアドレス指定され、形成されていること、そしてメールサーバーで正しく認証されていることを確認することです。 FWIW以前は 'ssl:// ...'のようなメールホストは見たことがありません。そのようなことを伝えるいくつかの文書がありましたか? – ADyson
こんにちはアディソン、はい、実際に。私はかなりしばらくインターネットで検索していましたが、そのようなコードスニペットがいくつか見つかりました。私はそれを変更しようとする必要がありますか? – user7943
まず、 '$ mail-> isSMTP();'コマンドを追加して、PHPMailerがSMTPを知っていることを確認してください。また、 '$ mail-> SMTPDebug = 3;'を設定すると、PHPMailerから詳細な出力が得られます。それがうまくいかない場合は、 'ssl://'部分を失って、私をユーモアにしてみてください。 – ADyson