웹 사이트에 대한 문의 양식을 작성 중입니다. jQuery를 사용하여 html 버튼에 .click() 함수를 만듭니다. 그런 다음 ajax를 사용하여 email.php 코드를 호출합니다. 버튼을 클릭하면 콘솔에 다음 오류가 표시됩니다.외부 PHP 이메일 요청 500 내부 서버 오류로 응답
500 (내부 서버 오류).
저는 아약스와 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에 if를 입력하지 마십시오. 그런 다음 메일 기능에서 이메일로 보이는 것을 넣으십시오. 마지막으로 SMTP 서버를 가지고 계시거나 * sendmail *을 구성하여 이메일을 보내시겠습니까? 정확히 무엇이 오류입니까? PHP가 오류를 표시하고 php.ini 파일을 업데이트하려고 시도합니다. – AnthonyB
이 문제는 저도 모르지만 ECOWEBHOST는 로컬 서버가 아닙니다. 또한 데이터 객체에 제출 키를 어떻게 추가합니까? –
당신의 이메일을 보내기 위해 smtp로 무엇을 사용하고 있습니까? 귀하의 이메일은 누구로부터 오는 것입니까? – Dom