2017-01-18 9 views
0

내가 만들고있는 웹 사이트의 문의 양식은 지금 몇 달 동안 나를 귀찮게했습니다. 오류가 없으며 전자 메일을받을 수있는 부분을 제외하고 모든 것이 성공한 것으로 보입니다. 전자 메일이 수신되지 않아 조명 정보에 감사드립니다.문의 양식은 성공을 돌려 주지만 전자 메일은 보내지 않습니다 : PHP | HTML

이것은 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 = strip_tags(htmlspecialchars($_POST['name'])); 
$email_address = strip_tags(htmlspecialchars($_POST['email'])); 
$message = strip_tags(htmlspecialchars($_POST['message'])); 

// Create the email and send the message 
$to = '[email protected]'; 
$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\nPhone: $phone\n\nMessage:\n$message"; 
$headers = "From: [email protected]\n"; 
$headers .= "Reply-To: $email_address"; 
if(mail($to,$email_subject,$email_body,$headers)){ 
return true; 
} 
return false;   
?> 

이것은 JS 코드

$(function() { 

$("#contactForm input,#contactForm 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"); 
}); 
}); 

$('#name').focus(function() { 
$('#success').html(''); 
}); 

이것은 HTML 코드이다.

<!-- Contact Section --> 
<section id="contact"> 
    <div class="container"> 
     <div class="row"> 
      <div class="col-lg-12 text-center"> 
       <h2 class="section-heading">Talk to Us</h2> 
       <h3 class="section-subheading text-muted"></h3> 
      </div> 
     </div> 
     <div class="row"> 
      <div class="col-lg-12"> 
       <form name="sentMessage" id="contactForm" novalidate> 
        <div class="row"> 
         <div class="col-md-6"> 
          <div class="form-group"> 
           <input type="text" name="name" class="form-control" placeholder="Your Name *" id="name" required data-validation-required-message="Please enter your name."> 
           <p class="help-block text-danger"></p> 
          </div> 
          <div class="form-group"> 
           <input type="email" name="email" class="form-control" placeholder="Your Email *" id="email" required data-validation-required-message="Please enter your email address."> 
           <p class="help-block text-danger"></p> 
          </div> 
          <div class="form-group"> 
           <!-- <input type="tel" class="form-control" placeholder="Your Country *" id="country" required data-validation-required-message="Please enter your country."> --> 

           <select class="form-control" id="country"> 
            <option value="0" selected="selected">Your Country *</option> 
            <option value="AF">Afghanistan</option> 
            <option value="AX">Ã…land Islands</option> 
           </select> 
          </div> 
         </div> 
         <div class="col-md-6"> 
          <div class="form-group"> 
           <textarea class="form-control" name="message" placeholder="Your Message *" id="message" required data-validation-required-message="Please enter a message."></textarea> 
           <p class="help-block text-danger"></p> 
          </div> 
         </div> 
         <div class="clearfix"></div> 
         <div class="col-lg-12 text-center"> 
          <div id="success"></div> 
          <button type="submit" class="btn hvr-pulse-grow">Send Message</button> 
         </div> 
        </div> 
       </form> 
      </div> 
     </div> 
    </div> 
</section> 
+0

true를 반환하는 대신 echo "test"를 입력하고 작동하는지 확인하십시오. 스팸 함을 확인 했습니까? – kerv

답변

0

봅니다 PHPMailer 라이브러리를 사용하는 https://github.com/PHPMailer/PHPMailer 단계 : 1 하나 개의 폴더 '메일' 단계 만들 :이 파일은 class.phpmailer.php 2 복사, class.pop3.php, class.smtp을. php, PHPMailerAutoload.php 해당 URL에서 다운로드 한 폴더 단계 : 3 sendMail.php 파일을 만들어 위 코드를 붙여 넣고 hostname, from,, userid, password, smtp와 같은 require 매개 변수를 변경하십시오 포트 번호,

require 'PHPMailerAutoload.php'; 
function sendEmail($subject, $body, $to, $cc = "", $bcc = "") { 
$mail = new PHPMailer(); 

$mail->isSMTP(); // Set mailer to use SMTP 
$mail->setFrom('[email protected]', 'Title'); // Set who the message is to be sent from 
$mail->Host = 'hostname | ip address'; // Specify main and backup server 
$mail->SMTPAuth = true; // Enable SMTP authentication 
$mail->Username = 'username'; // SMTP username 
$mail->Password = 'password'; // SMTP password 
$mail->Port = 587; // Set the SMTP port number - 587 for authenticated TLS 

$tos = explode(";", $to); 
foreach ($tos as $key => $val) { 
    $mail->addAddress($val); // Add a recipient 
} 
$ccs = explode(";", $cc); 
foreach ($ccs as $key => $val) { 
    $mail->addCC($val); // Add a recipient 
} 

$mail->addBCC($bcc); 
$mail->WordWrap = 50; // Set word wrap to 50 characters 
$mail->isHTML(true); // Set email format to HTML 

$mail->Subject = $subject; 

$mail->msgHTML($body); 
$mail->Body = $body; 
if (!$mail->send()) { 
    echo '-';//'Message could not be sent.'; 
    echo 'Mailer Error: ' . $mail->ErrorInfo; 
    exit(); 
} else { 
    return true; //'Message has been sent'; 
} 

}