2016-08-03 8 views
0

誰かが連絡フォームを送信したときに、サーバーからメールを送信します。ここにサンプルのPHPコードです。php mail()falseを返す

<?php 
if($_SERVER['REQUEST_METHOD'] == "POST"){ 

$name = strip_tags(trim($_POST['name'])); 
$email = strip_tags(trim($_POST['email'])); 
$dept = strip_tags(trim($_POST['dept'])); 
$message = strip_tags(trim($_POST['message'])); 

if((!isset($email) || empty($email)) || (!isset($name) || empty($name)) || (!isset($dept) || empty($dept)) || (!isset($message) || empty($message))){ 
    echo -1; 
    return; 
} 
if(filter_var($email, FILTER_VALIDATE_EMAIL)===false){ 
    echo -2; 
    return; 
} 

$to = '[email protected]'; 
$email_subject = "Splendenti Eye Wear | Contact Us"; 
$email_body = "Contacted by\nName: $name\nEmail: $email\nDepartment: $dept\nMessage: $message"; 
$headers = "[email protected]\n"; // This is the email address the generated message will be from. We recommend using something like [email protected] 
$headers .= "Reply-To: ".$_POST['email']; 
if(mail($to,$email_subject,$email_body,$headers)){ 
    echo 1; // email sent 
} 
else{ 
    echo "failed to send email"; 
} 
}else{ 
echo "Invalid Request"; 
} 
?> 

ただし、メール機能がfalseを返す。誰でもガイドできますか?

+0

はメール用に設定されたサーバです(sendmail/smtp) –

+0

@SureshKamrushiはどうすれば確認できますか? –

+0

[ドキュメントを読む](http://php.net/manual/en/function.mail.php)とユーザーのコメント。 – Synchro

答えて

0

PHPMailerを使用してPHPファイルから電子メールを送信することをお勧めします。 これをチェックしてlinkをダウンロードしてください。 PHPMailerオンラインに関する多くの文書があります。 PHPMailerを使用してメールの詳細をすべて制御できます。

-2

は警告を抑制するために、@を使用しよう:

if(@mail($to,$email_subject,$email_body,$headers)){ 
    echo 1; // email sent 
} 

これはあなたが構成の問題を持って解決しない場合。

+0

ありがとう@Wolfgang –

+0

これは問題を解決しないだけで、エラーメッセージを抑制します。 'mail()'は例外をスローしないので、try/catchを使うと何もしません。 – Synchro

+0

@シンクロ..あなたは正しいです。私の最後の編集を削除しました。とにかく、私はonyl警告が抑制されていると思います。すべての誤りではありません。たぶんあなたは答えを投稿しようとするべきです。 – Wolfgang