2016-07-21 2 views
0

私は他のミスがここにないことを確認しようとしましたが、この問題を解決できないようです。名前、電子メール、およびメッセージを入力してテストを実行すると、メッセージの感謝は返されますが、電子メールは送信されません。PHPの連絡フォームが返送されましたが送信されていません

うまくいけば、この1は愚かなタイプミス

HTMLではありません:そのようなことを行ういけないしてください

<?php 
$field_name = $_POST['name']; 
$field_email = $_POST['email']; 
$field_message = $_POST['message']; 

$mail_to = '[email protected]'; 
$subject = 'Web message from '.$field_name; 

$body_message = 'From: '.$field_name."\n"; 
$body_message .= 'E-mail: '.$field_email."\n"; 
$body_message .= 'Message: '.$field_message; 

$headers = 'From: '.$field_email."\r\n"; 
$headers .= 'Reply-To: '.$field_email."\r\n"; 

$mail_status = mail($mail_to, $subject, $body_message, $headers); 

if ($mail_status) { ?> 
    <script language="javascript" type="text/javascript"> 
    alert('Thank you for the message.'); 
    window.location = '/'; 
    </script> 
<?php 
} 
else { ?> 
    <script language="javascript" type="text/javascript"> 
    alert('Message failed.); 
    window.location = '/'; 
    </script> 
<?php 
} 
?> 
+0

ドキュメントは、これは言っている「メールが配信のために受け入れられたからといって、それはメールが実際に意図された宛先に到達することを意味しないことに注意することは重要です。」 http://php.net/manual/en/function.mail.php最高のものは、SMTPまたはAPIを使用することです – adelowo

+0

私はこのメールのためだけに$ mail_to変数を[email protected]に変更したとします問題ではない? – TheValyreanGroup

答えて

-2

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

       <div> 
       <p>Send us your message</p> 
       </div> 

       <div> 
       <label>Username <span class="required">*</span></label> 
       <input name="name" type="text" id="name" value="" /> 
       </div> 

       <div> 
       <label>Email <span class="required">*</span></label> 
       <input name="email" type="text" id="email" value="" /> 
       </div> 

       <div> 
       <label>Message <span class="required">*</span></label> 
       <textarea name="message" rows="20" cols="50" id="message" ></textarea><br /><br /> 
       </div> 

       <div> 
       <input type="submit" value="Submit" class="button"> 
       <input type="reset" value="Reset" class="button"> 
       </div> 

      </form> 

PHP。あなたはmysql_real_escape_stringようなもので、ユーザー入力をエスケープし、きれいにする必要がある、あなたは単にあなたの質問のために

header('Location: http://example.org/'); 
exit(); 

を使用することができます。私の意見ではメール機能は、どのような状況で使用するのに良いではありません。単にそれを使用することを許可しないWebホスティングサービスが多数あるか、または制限があるためです。私はPHPMailerのようなものを使用します。これは、電子メールデータの送信と検索にsmtpを使用します。そのようなライブラリを使用するには、電子メールアカウントが必要です。

MANNI

+0

あなたの提案をありがとう!私は代わりにそのようなものに切り替えるでしょう。 – frecilup

+2

mysql_real_escape_string?!? OPはデータベースに何も入れていません –

+0

何をしていても、常にユーザーデータをエスケープする必要があります。 mysql_real_esape_stringはopが使うことのできる単なる例でした。 –

関連する問題