StackOverflowに私の質問によく似たものがたくさんあることがわかりましたが、まだ私の質問に対する正しい解決策を見つけることができなかったと思います。PHPの連絡先フォームの設定上の問題
のメール機能を受け取ると接続されているものを私が午前問題 - ユーザーがhtml
ベースのフォームに記入し、send message
を押すことができ、ウェブサイトの基本的ご連絡セクションを、このメッセージは、私のメールに配信されます。
私は自分の開発をXAMPPで行い、ApacheサーバーとMercuryをlocalhostで実行しています。検証は成功を示しますが、電子メールは通過しません。
- 私は、HTMLのセクションに
method="post"
を追加しようとしましたが、type: "POST"
がすでに含まれていることを見出しました。 - Mercuryが使用するポートをダブルチェックし、
php.ini
に記載されているポートと比較すると、両方とも25
に設定されます。 - また、Bitbucket pagesに展開しようとしましたが、Azureはlocalhostからlive hostingに移行しました。
私はこの非常に詳細なpostを慎重に読んだ。ウェブサイトをライブホスティングにアップロードするというアイデアは、この投稿から来たものです。
<?php
$name = trim($_POST['name']);
$email = trim($_POST['email']);
$message = trim($_POST['message']);
if(isset($name) && isset($email)) {
// Avoid Email Injection and Mail Form Script Hijacking
$pattern = "/(content-type|bcc:|cc:|to:)/i";
if(preg_match($pattern, $name) || preg_match($pattern, $email) || preg_match($pattern, $message)) {
exit;
}
$to = "[email protected]";
$sub = "$name from Cv";
// HTML Elements for Email Body
$body = <<<EOD
<strong>Name:</strong> $name <br>
<strong>Email:</strong> <a href="mailto:$email?subject=feedback" "email me">$email</a> <br> <br>
<strong>Message:</strong> $message <br>
EOD;
$headers = "From: $name <$email>\r\n";
$headers .= 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
mail($to, $sub, $body, $headers);
}
?>
$("#contact-form-1").submit(function(e) {
e.preventDefault();
var success = $(this).find('.email-success'),
failed = $(this).find('.email-failed'),
loader = $(this).find('.email-loading'),
postUrl = $(this).attr('action');
success.fadeOut(100); failed.fadeOut(100); loader.fadeOut(100);
var data = {
name: $(this).find('.contact-name').val(),
email: $(this).find('.contact-email').val(),
message: $(this).find('.contact-message').val()
};
if (isValidEmail(data['email']) && (data['message'].length > 1) && (data['name'].length > 1)) {
$.ajax({
type: "POST",
url: postUrl,
data: data,
beforeSend: function() {
loader.fadeIn(500);
},
success: function(data) {
loader.fadeOut(500);
failed.fadeOut(500);
success.delay(500).fadeIn(500);
},
error: function(xhr) { // if error occured
loader.fadeOut(500);
success.fadeOut(500);
failed.delay(500).fadeIn(500);
},
complete: function() {
loader.fadeOut(500);
}
});
} else {
loader.fadeOut(500);
failed.delay(500).fadeIn(500);
success.fadeOut(500);
}
return false;
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form id="contact-form-1" action="sendmail.php" method="POST">
<input class="contact-name form-control" type="text" name="name" placeholder="FULL NAME">
<input class="contact-email form-control" type="text" name="email" placeholder="EMAIL">
<textarea class="contact-message form-control" name="message" placeholder="MESSAGE" rows="5"></textarea>
<button class="btn">SEND MESSAGE</button>
</form>
注:それは、テンプレートの作成者によって提供されたとして、私は自分でこのコードを書いていません。私はテンプレートの作成者に連絡し、絶対にひどいサポートに直面しました。これが私のポストの主な理由です。
メールが正常に送信されたかどうかはチェックしていません。 – Epodax
@Epodax検証を追加しました。更新された投稿をチェックしてください。 – alljamin
エラーメッセージがありますか? – D14n4