2016-04-28 20 views
0

私の連絡フォームを有効にしようとしましたが、Gmailのフォルダにメールが届かない(スパムやゴミ箱を含む)ホスト)。PHPフォームに連絡する - メールを受信しない(GMAIL)

私はこのチュートリアルを追ってきた:http://bootstrapious.com/p/how-to-build-a-working-bootstrap-contact-form

私はすべてを試みてきたようにいくつかの深刻な助けが必要!

<?php 


$from = $_POST['email']; 
$sendTo = '[email protected]'; 
$subject = 'New message from contact form'; 
$fields = array('name' => 'Name', 'surname' => 'Surname', 'email' =>  'Email', 'phone' => 'Phone', 'message' => 'Message'); 

// array variable name => Text to appear in email 

$okMessage = 'Contact form succesfully submitted. Thank you, I will get back  to you soon!'; 
$errorMessage = 'There was an error while submitting the form. Please try again later'; 

// let's do the sending 

try 
{ 
$emailText = "You have new message from contact  form\n=============================\n"; 

foreach ($_POST as $key => $value) { 

    if (isset($fields[$key])) { 
     $emailText .= "$fields[$key]: $value\n"; 
    } 
} 

    mail($sendTo, $subject, $emailText, "From: " . $from); 

    $responseArray = array('type' => 'success', 'message' => $okMessage); 
} 
catch (\Exception $e) 
{ 
$responseArray = array('type' => 'danger', 'message' => $errorMessage); 
} 

if (!empty($_SERVER['HTTP_X_REQUESTED_WITH']) &&  strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') { 
$encoded = json_encode($responseArray); 

header('Content-Type: application/json'); 

echo $encoded; 
} 
else { 
echo $responseArray['message']; 
} 

HTMLのFORM

<form id="contact-form" method="post" action="contact.php" role="form"> 

<div class="messages"></div> 

    <div class="form-group"> 
     <div class="row"> 
      <div class="col-md-6 col-sm-12"> 
       <label>First name*</label> 
       <input type="text" id="form-name" name="name" class="form-  control" placeholder="Please enter your firstname *" required="required"> 
      </div> 
      <div class="col-md-6 col-sm-12"> 
       <label>Last name*</label> 
       <input type="text" name="surname" id="form-surname"  class="form-control" placeholder="Please enter your firstname *"  required="required"> 
      </div> 
     </div> 
    </div> 
    <div class="form-group"> 
     <div class="row"> 
      <div class="col-md-6 col-sm-12"> 
       <label>Email*</label> 
       <input type="email" name="email" id="form-email" class="form-control" placeholder="Please enter your firstname *" required="required"> 
      </div> 
      <div class="col-md-6 col-sm-12"> 
       <label>Phone</label> 
       <input type="tel" name="phone" id="form-phone" class="form- control" placeholder="Please enter your phone"> 
      </div> 
     </div> 
    </div> 


    <div class="form-group"> 
     <label for="comment">Message*</label> 
     <textarea class="form-control" rows="7" name="message" id="form-message" default="Type us a message" required="required"></textarea> 
    </div>  

    <div class="checkbox"> 
     <label><input type="checkbox" value="">Join mailing list</label> 
    </div> 
    <input type="submit" class="btm btn-success btn-send" value="Send message"> 
    <p class="text-muted"><strong>*</strong> These fields are required.</p> 
</form> 
+0

エラーメッセージがありますか? –

+0

あなたのホストはphp mail()をサポートしていますか? – AkshayP

+0

提出時にわかるようなエラーメッセージはありません –

答えて

3

として多くのサーバーがあなたがメールを送信することはできません。登録されていない人の名前を入力する必要がある場合は、サーバー上にメールを作成して、ユーザーが連絡フォームに記入したメールを送信するためのメールを作成してから、PHPMailerからメールをお送りします。 phpmailerの使用方法を示す

簡単な例は次のようになります。

<?php 
require 'PHPMailerAutoload.php'; 

$mail = new PHPMailer; 

//$mail->SMTPDebug = 3;        // Enable verbose debug output 

$mail->isSMTP();          // Set mailer to use SMTP 
$mail->Host = 'smtp.yourserver.here'; // Specify main and backup SMTP servers 
$mail->SMTPAuth = true;        // Enable SMTP authentication 
$mail->Username = '[email protected]';     // SMTP username 
$mail->Password = 'password';       // SMTP password 
$mail->SMTPSecure = 'tls'; 
$mail->Port = 587;         // TCP port to connect to 

$mail->setFrom('[email protected]', 'Mailer'); 
$mail->addAddress('[email protected]', 'You');  // Add a recipient 
$mail->addReplyTo('[email protected]', 'User that submitted form'); 

$mail->Subject = 'Subject here'; 
$mail->Body = 'Write here your message'; 

if(!$mail->send()) { 
    echo 'Message could not be sent.'; 
    echo 'Mailer Error: ' . $mail->ErrorInfo; 
} else { 
    echo 'Message has been sent'; 
} 

例は、私は上記のあなたに言ってきたリンクから取得されます。

+0

電子メールアカウントを作成してphpmailerファイルをアップロードし、上記のPHPコードで値を入力したら、どうすればテストできますか? –

+0

このコードを関数内に配置し、送信ボタンを押すとその関数を呼び出すことができます – rafaelcpalmeida

関連する問題