私はウェブサイトのためのお問い合わせフォームを作成しています。私はjQueryを使ってhtmlボタン用の.click()関数を作成しています。 ajaxを使用してemail.phpコードを呼び出します。ボタンをクリックすると、コンソールに次のエラーが表示されます。外部PHP電子メールのリクエスト500内部サーバエラーで応答する
500(内部サーバーエラー)
私はajaxとphpが一緒に使用されているので、私はこの時点で何をすべきか分かりません。ここで
は、HTMLフォームです:
$(関数(){:
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<script src = "js/callmail.js"></script>
</head>
<body ng-app = "">
<div class = "container">
<form name = "contact">
<label for = "subject" class = "control-label">Subject:</label>
<input name = "subject" id = "subject" ng-model = "subject" required/>
<span class = "warning" ng-show="contact.subject.$touched && contact.subject.$invalid">You Must Enter a subject!</span>
<span class = "success" ng-show="contact.subject.$touched && contact.subject.$valid">Valid!</span>
<br/>
<label for = "body" class = "control-label">Body:</label>
<input name = "body" id = "body" ng-model = "body" required/>
<span class = "warning" ng-show="contact.body.$touched && contact.body.$invalid">Your email must have a body!</span>
<span class = "success" ng-show="contact.body.$touched && contact.body.$valid">Valid!</span>
<br/>
<label for = "signature" class = "control-label">Return Email:</label>
<input name = "signature" id = "signature" ng-model = "signature" type = "email" required/>
<span class = "warning" ng-show="contact.signature.$touched && contact.signature.$invalid">You must enter a valid return email!</span>
<span class = "success" ng-show="contact.signature.$touched && contact.signature.$valid">Valid!</span>
<br/>
<button ng-disabled = "contact.$invalid" id = "sendmail" type = "submit" class = "btn btn-success">Submit</button>
</form>
</div>
、ここでは、PHPコードのjQueryの/ AJAX呼び出しです
$("#sendmail").click(function() {
var data = {
to: "myemail",
subject: $("#signature").val() + ": " + $("#subject").val(),
message: $("#body").val()
}
$.ajax({
type: "POST",
url: "email.php",
data: data,
success: function() {
alert("Message sent");
}
});
console.log(data);
});
});
そして最後に、ここに電子メールを送信する責任があるのPHPコードは次のとおりです。
<?php
if ($_POST["submit"]) {
$subject = $_POST["subject"];
$message = $_POST["message"];
$headers = "From: " . $_POST["name"] . "Reply to: " . $_POST["signature"];
mail("myemail", $subject, $message, $headers))
}
?>
任意の助けをいただければ幸いです。
これはおそらくエラーではありませんが、* data * JSオブジェクトには「送信」キーがありませんので、email.phpには決して入力しないでください。 メール機能でメールに見えるものを入れてみてください。 最後に、SMTPサーバーを持っているか、電子メールを送信できるように* sendmail *を設定しましたか? 正確にはあなたのエラーは何ですか? PHPがエラーを表示し、php.iniを表示するように更新してください。 – AnthonyB
これが問題なのかどうかわかりませんが、ECOWEBHOSTはローカルサーバではありません。また、データオブジェクトにサブミットキーを追加するにはどうすればよいですか? –
あなたのメールを送信するためにsmtpとして何を使用していますか?あなたのメールは誰から来るのですか? – Dom