2016-09-17 10 views
0

私はPHPで簡単な電子メール機能を設定しようとしています。同じ問題に取り組んでいる他の質問を見ても、答えが出ているのと同じことをやっているようです。ただし、電子メールを送信しようとすると、送信されません。PHPが連絡フォームから電子メールを送信しない

HTML

<form id="contactMeForm"> 
    <div class="formField"> 
     <label for="senderName">Name:</label> 
     <input type="text" id="senderName" class="textField" placeholder="Your name" /> 
    </div> 
    <div class="formField"> 
     <label for="senderEmail">Email:</label> 
     <input type="text" id="senderEmail" class="textField" placeholder="Your email" /> 
    </div> 
    <div class="formField"> 
     <label for="contactReason">Contact reason:</label> 
     <select id="contactReason"> 
      <option></option> 
      <option>I'd like a quote for a website.</option> 
     </select> 
    </div> 
    <div class="formField" id="message"> 
     <div id="senderPhone"> 
      <label for="returnPhone">Contact number:</label> 
      <input type="text" id="returnPhone" class="textField" placeholder="Best phone number to reach you at." /> 
     </div> 
     <label for="senderMessage">Message:</label> 
     <textarea id="senderMessage"></textarea> 
    </div> 

JS

$.ajax({ 
    type: "POST", 
    url: "scripts/email.php", 
    data: {name: senderName, email: senderEmail, reason: contactReason, phone: returnPhone, message: senderMessage}, 
    dataType: "json", 
    success: function(response){ 
     contactMeForm.style.display = "none"; 
     formButtons.style.display = "block"; 
     confirmMessage.style.display = "block"; 
     buttons[1].style.display = "none"; 
     contactMeHeader[0].textContent = "Your message has been sent."; 
    } 
}) 

PHP

<?php 
    $name = $_POST["name"]; 
    $email = $_POST["email"]; 
    $reason = $_POST["reason"]; 
    $phone = $_POST["phone"]; 
    $headers = "From: " .$email ."\r\n"; 
    $message = $_POST["message"]; 

    mail("[email protected]", $reason, $message, $headers); 
    echo json_encode(array($name, $email, $reason, $phone, $message)); 
?> 

php.iniの

[mail function] 
; For Win32 only. 
; http://php.net/smtp 
SMTP = smtp.gmail.com 
; http://php.net/smtp-port 
smtp_port = 25 

私はWindowsマシン上でEasyPHPとApacheサーバを実行していますよ。また、エラーメッセージも表示されません。

答えて

2

フィールドが入力されていないと推測しています。それぞれのフィールドにnameプロパティを追加する必要があります。これはPHPが$_POST配列内で探しているものです。

<input type="text" id="senderEmail" class="textField" placeholder="Your email" name="email" /> 
+0

ああ、gotcha。ありがとうございました –

関連する問題