mail 폼 이용하기
본문
<form name="sentMessage" id="contactForm" novalidate>
<div class="row">
<div class="col-md-6">
<div class="form-group">
<input type="text" id="name" class="form-control" placeholder="Name" required="required">
<p class="help-block text-danger"></p>
</div>
</div>
<div class="col-md-6">
<div class="form-group">
<input type="email" id="email" class="form-control" placeholder="Email" required="required">
<p class="help-block text-danger"></p>
</div>
</div>
</div>
<div class="form-group">
<textarea name="message" id="message" class="form-control" rows="4" placeholder="Message" required></textarea>
<p class="help-block text-danger"></p>
</div>
<div id="success"></div>
<button type="submit" class="btn btn-default">Send Message</button>
</form>
안녕하세요, 위 폼에서 메일을 보냈구요.
네트워크를 확인해 보니 총 2개의 파일과 연동되는것 같더라구요...
contact_me.php와 contact_me.js 입니다.
---contact_me.php---
<?php
// Check for empty fields
if(empty($_POST['name']) ||
empty($_POST['email']) ||
empty($_POST['message']) ||
!filter_var($_POST['email'],FILTER_VALIDATE_EMAIL))
{
echo "No arguments Provided!";
return false;
}
$name = $_POST['name'];
$email_address = $_POST['email'];
$message = $_POST['message'];
// Create the email and send the message
$to = '*** 개인정보보호를 위한 이메일주소 노출방지 *** - This is where the form will send a message to.
$email_subject = "Website Contact Form: $name";
$email_body = "You have received a new message from your website contact form.\n\n"."Here are the details:\n\nName: $name\n\nEmail: $email_address\n\nMessage:\n$message";
$headers = "From: *** 개인정보보호를 위한 이메일주소 노출방지 ***.
$headers .= "Reply-To: $email_address";
mail($to,$email_subject,$email_body,$headers);
return true;
?>
---contact_me.js---
$(function() {
$("input,textarea").jqBootstrapValidation({
preventSubmit: true,
submitError: function($form, event, errors) {
// additional error messages or events
},
submitSuccess: function($form, event) {
event.preventDefault(); // prevent default submit behaviour
// get values from FORM
var name = $("input#name").val();
var email = $("input#email").val();
var message = $("textarea#message").val();
var firstName = name; // For Success/Failure Message
// Check for white space in name for Success/Fail message
if (firstName.indexOf(' ') >= 0) {
firstName = name.split(' ').slice(0, -1).join(' ');
}
$.ajax({
url: "././mail/contact_me.php",
type: "POST",
data: {
name: name,
email: email,
message: message
},
cache: false,
success: function() {
// Success message
$('#success').html("<div class='alert alert-success'>");
$('#success > .alert-success').html("<button type='button' class='close' data-dismiss='alert' aria-hidden='true'>×")
.append("</button>");
$('#success > .alert-success')
.append("<strong>Your message has been sent. </strong>");
$('#success > .alert-success')
.append('</div>');
//clear all fields
$('#contactForm').trigger("reset");
},
error: function() {
// Fail message
$('#success').html("<div class='alert alert-danger'>");
$('#success > .alert-danger').html("<button type='button' class='close' data-dismiss='alert' aria-hidden='true'>×")
.append("</button>");
$('#success > .alert-danger').append("<strong>Sorry " + firstName + ", it seems that my mail server is not responding. Please try again later!");
$('#success > .alert-danger').append('</div>');
//clear all fields
$('#contactForm').trigger("reset");
},
})
},
filter: function() {
return $(this).is(":visible");
},
});
$("a[data-toggle=\"tab\"]").click(function(e) {
e.preventDefault();
$(this).tab("show");
});
});
/*When clicking on Full hide fail/success boxes */
$('#name').focus(function() {
$('#success').html('');
});
제 계정 메일로 받고 싶은데 어디를 고쳐야 할까요????
답변 6
무료호스팅의 경우
메일이 안보내지는 경우가 있어요
닷홈에 관리자에 물어본적이 있는데
무료는 안된다고 했어요
$to = "받으시는메일";
mail($to,$email_subject,$email_body,$headers);
이렇게 수정하시면 됩니다.
<b>Warning</b>: mail() [<a href='function.mail'>function.mail</a>]: Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in <b>C:\APM_Setup\html\mail\contact_me.php</b> on line <b>22</b><br />
contact_me.php 추적해보니 위코드가 찍히네요....
메일서버 포트 25에 연결하지 못했다는 에러인데요
smtp가 실행되지 않았거나, 설정이 안되어 있을 확률이 큽니다
http://php.net/manual/kr/mail.configuration.php
위 참조하여 수정해보세요
사용하시는 서버가 어디신데요?
일반적으로 웹호스팅업체들은 메일서버가 당연히 깔려있지만 독립적인 서버를 구성하는 경우이거나 테스트용도의 개인서버를 구축하셨다면 메일서버 자체가 구성이 안되어 있을수도 있습니다. 관련해서도 한번 살펴보세요.
닷홈만 그런가요?? 혹시 다른 호스팅은 괨찮은지요???