2016-12-31 4 views
0

誰かが私のコードを見直して、電子メールが送信されない理由を教えてもらえますか?フォームのデータをPHPのメールスクリプトに投稿するjQuery Ajaxメソッドを記述しようとしています。ここでjQuery Ajaxメソッドを書こうとすると、フォームのデータをPHPのメールスクリプトに投稿します

は、お問い合わせフォームページの本文です:ここで

<body> 
    <?php require 'Includes/Header.php' ?> 
<div id="container1"> 
    <h1>Contact Us</h1> 
    <form id="form" onSubmit="return validate(this);" method="post" action="customerMsg2.php" > 
    <table> 
     <tr> 
      <td>First Name: </td> 
      <td><input type="text" name="FirstName" id="FirstName" autofocus></td> 
     </tr> 
     <tr> 
      <td>Last Name: </td> 
      <td><input type="text" name="LastName" id="LastName"></td> 
     </tr> 
     <tr> 
      <td>Email: </td> 
      <td><input type="text" name="Email" id="Email"></td> 
     </tr> 
     <tr> 
      <td>Leave a message: </td> 
      <td><textarea name="Message" id="Message"></textarea></td> 
     </tr> 
     <tr> 
      <td><input type="submit" id="sendEmail" value="Send Email"></td> 
     </tr> 
     <input type="hidden" name="submitted" value="true"> 
    </table> 
    </form> 
    <div id="ajax-message"></div> 
</div> 
<div id="container2"> 
    <ul id="slideshow"> 
     <li id="services"><h2>Make a Donation!</h2><br> 
      Our pets need lots of love and attention while they wait for new homes. Why not give today?<br><input type="button" value="Donate"></li> 
     <li id="services"><h2>Check Out Our Podcast!</h2><br> 
      Tune in weekly as Josh gives his unique perspective on pet-ownership and dutifully regulated capitalism.</li> 
    </ul> 
</div> 
    <script src="slideshow.js"></script> 
    <script src="ajaxsubmit.js"></script> 
    <?php require 'Includes/Footer.php' ?> 
</body> 
</html> 

はjQueryの、AJAXコード(ajaxsubmit.js)です:

$(document).ready(function() { 
    var $form = $('#form'); 
    var ajaxmessage = $('#ajax-message'); 

    $form.submit(function (event) { 
     event.preventDefault(); 
     var serializedData = $form.serialize(); 
     $.ajax({ 
      type: 'POST', 
      url: $form.attr('action'), 
      data: serializedData 
     }) 
      .done(function (response) { 
       $(ajaxmessage).removeClass('error'); 
       $(ajaxmessage).addClass('success'); 
       $(ajaxmessage).text(response); 

       $('#FirstName').val(''); 
       $('#LastName').val(''); 
       $('#Email').val(''); 
       $('#Message').val(''); 
      }) 
      .fail(function (data) { 
       $(ajaxmessage).removeClass('success'); 
       $(ajaxmessage).addClass('error'); 
       if (data.responseText !== '') { 
        $(ajaxmessage).text(data.responseText); 
       } else { 
        $(ajaxmessage).text('Oops! An error occured and your message could not be sent.'); 
       } 
      }); 
    }); 
}); 

、ここでは、PHPスクリプトです:

<?php 

     ini_set('SMTP', 'smtp.gmail.com'); 
     $to = '(i would put my email address here)'; 
     $firstname = strip_tags(trim($_POST["FirstName"])); 
     $lastname = strip_tags(trim($_POST["LastName"])); 
     $message = trim($_POST["Message"]);  
     $from = trim($_POST['Email']); 
     $subject = "New contact from $firstname $lastname"; 


     if(mail($to, $subject, $message, $from)) 
     { 
      echo "Message sent."; 
     } 
     else 
     { 
      echo "Message not sent."; 
     } 

?> 

アイデア?

答えて

0

これは、PHPのドキュメントからの例です:

`<?php 
    $to  = '[email protected]'; 
    $subject = 'the subject'; 
    $message = 'hello'; 
    $headers = 'From: [email protected]' . "\r\n" . 
    'Reply-To: [email protected]' . "\r\n" . 
    'X-Mailer: PHP/' . phpversion(); 
    mail($to, $subject, $message, $headers); 
?> 

あなたのヘッダー情報が正しくありません。
さようなら

0

私はすべてのあなたのコードをチェックしませんでしたが、PHPスクリプトは、いくつかの問題があり、次のように最初にメール機能が定義されている

bool mail (string $to , string $subject , string $message [, string $additional_headers [, string $additional_parameters ]]) 

あなただけの電子メールを置くことができませんアドレス文字列は$additional_headersです。例えば

$header = "From: " . $from . "\r\n"; 
mail($to, $subject, $message, $header); 

さらに、私はあなたがGmailのサーバー経由、メールアドレスなどのヘッダは異なるとのメールを送ることができないと思います。通常、ホスティングプロバイダは、phpメール機能を使用して電子メールを送信するために必要な設定を既に行っています。

+0

私に同封してください、私はまだ私の認証に取り組んでおり、これは非常に新しいです。あなたは変更するように言っています:$ from = trim($ _ POST ['Email']); to:$ header = "From:"。 $から。 "\ r \ n"; メール機能に$ headerが含まれていますか? – Josh

+0

いいえ、 から変更した場合の "From:" に$ヘッダー=(メール($ $件名、$メッセージ、から$)へ)。 $から。 "\ r \ n"; if(mail($ to、$件名、$メッセージ、$ header)) ini_set( 'SMTP'、 'smtp.gmail.com'); smtp.gmail.com上で動作するようになるまで、ホスティングプロバイダによって設定されたsmtpサーバーを介して電子メールが送信されるようにします。 – user3190433

関連する問題