테스트 사이트 - 개발 중인 베타 버전입니다

mail 폼 이용하기 채택완료

Developerzasfsdfsd 7년 전 조회 2,483


      <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 = 'jerry@freevu.net'; // Add your email address inbetween the '' replacing yourname@yourdomain.com - 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: noreply@yourdomain.com\n"; // This is the email address the generated message will be from. We recommend using something like noreply@yourdomain.com.
$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'>&times;")
                        .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'>&times;")
                        .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개

채택된 답변
+20 포인트
하누☆
7년 전

무료호스팅의 경우 

메일이 안보내지는 경우가 있어요

닷홈에 관리자에 물어본적이 있는데

무료는 안된다고 했어요

 

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

닷홈만 그런가요?? 혹시  다른 호스팅은  괨찮은지요???

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

사용하시는 서버가 어디신데요?

일반적으로 웹호스팅업체들은 메일서버가 당연히 깔려있지만 독립적인 서버를 구성하는 경우이거나 테스트용도의 개인서버를 구축하셨다면 메일서버 자체가 구성이 안되어 있을수도 있습니다. 관련해서도 한번 살펴보세요.

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

D
Developerzasfsdfsd
7년 전
닷홈 무료 호스팅 이에요ㅜㅜㅜ

댓글을 작성하려면 로그인이 필요합니다.

7년 전

메일서버 포트 25에 연결하지 못했다는 에러인데요

 

smtp가 실행되지 않았거나, 설정이 안되어 있을 확률이 큽니다

 

http://php.net/manual/kr/mail.configuration.php" target="_blank">http://php.net/manual/kr/mail.configuration.php

 

위 참조하여 수정해보세요

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

D
Developerzasfsdfsd
7년 전
SMTP = localhost
smtp_port = 25


확인해보니
php.ini 에 이렇게 설정되어 있어요.,,,, 또 다른것을 설정해줘야 하나요????

댓글을 작성하려면 로그인이 필요합니다.

<b>Warning</b>:  mail() [<a href='function.mail'>function.mail</a>]: Failed to connect to mailserver at &quot;localhost&quot; port 25, verify your &quot;SMTP&quot; and &quot;smtp_port&quot; 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  추적해보니  위코드가  찍히네요....

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

M
7년 전

$to = "받으시는메일";

mail($to,$email_subject,$email_body,$headers);

이렇게 수정하시면 됩니다.

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

D
Developerzasfsdfsd
7년 전
당연히 "받으시는 메일" 에 매일 계정 넣었어요....
그래도 메일이 안 들어 옵니다.

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인