2016-12-17 8 views
1

私はPHPでメールを送信する際に問題があります。このテキストは自分のコードです。スクリプトの動作をエコーし​​、それ以外の場合は動作しますが、動作していないものはメールですPHPは関数を使用してメールを送信します

<?php 
     if (isset($_POST['submit'])) { 
      $datumod = $_POST['dateod']; 
      $datumdo = $_POST['datedo']; 
      $broj = $_POST['phone']; 
      $email = $_POST['email']; 
      if (empty($datumod) || empty($datumdo) || empty($broj) || filter_var($email, FILTER_VALIDATE_EMAIL) === false) { 
      echo "<script> 
     alert('Morate popuniti sva polja tacno kako bi znali da li ima rezervisanih soba u tom vremenskom intervalu!'); 
     </script>"; 

     } 
     else { 
     $poruka = "Jedna osoba je htela da proveri da li ima slobodnih soba od ".$datumod." do ".$datumdo."Broj telefona:".$broj."Email od tog korisnika:".$email.""; 
     $headers = array("From: [email protected]", 
      "Reply-To: [email protected]", 
      "X-Mailer: PHP/" . PHP_VERSION 
     );  
     mail('[email protected]','Prenociste',$poruka,$headers); 
     echo "<script> 
     alert('Uspesno ste poslali Vasu rezervaciju,u roku od 24h cete dobiti odgovor o kapacitetu prenocista u tom vremenskom intervalu.'); 
     </script>"; 
     } 
     } 
     ?> 
+0

これは、MTAが正しく設定されているかどうか、またPHPが適切に使用されるように設定されているかどうかによって大きく異なります。 「うまくいかない」とは何かを記述し、おそらくPHPとMTAのエラーログを確認する必要があります。 – pvg

+0

@pvg、そうかもしれません。しかし、この場合、コードに間違いがあります。私の答えを見てください。 – Ionut

+0

@ lonutああええ。ほとんどすべてのために悪いAPIを持つためにそれをPHPに任せてください! – pvg

答えて

1

ヘッダはstringませarrayなるので、この変更する必要があります。これに

$headers = array("From: [email protected]", 
      "Reply-To: [email protected]", 
      "X-Mailer: PHP/" . PHP_VERSION 
     ); 

$headers = "From: [email protected]\r\n"; 
$headers .= "Reply-To: [email protected]\r\n"; 
$headers .= "X-Mailer: PHP/" . PHP_VERSION . "\r\n"; 
0を

とうまくいくはずです。

また、迷惑メールなどを避けるため、PHPMailerのようなライブラリを使用することをお勧めします。これにより、電子メールが迷惑メールにならないように100%保証されるわけではありません。これは単なる推奨事項であり、PHPのmail()機能の改善です。あなたのサーバー構成のように考慮する必要があります。しかし、この場合、私が言ったように、これは単なる推薦です。 mail()またはPHPMailerの両方を使用できます。これはあなたの選択です。

+0

あなたは、各ヘッダの末尾に必要な\ r \ nがないと思います。 – pvg

+0

ライブラリを使って迷惑メールフィルタを回避するにはどうしたらいいですか? – Barmar

+0

@pvg、それを逃した。それらを追加しました。 Barmar、私はPHPMailerを使ってメールがスパムにならないようにすることは絶対に100%の可能性はないと考えていますが、この目的に役立つように作成されたライブラリであり、ヘッダーなど、サーバー構成などにも依存しています。 – Ionut

関連する問題