2016-12-17 1 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 ah yeah. 거의 모든 것을위한 나쁜 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"; 

그리고 정상적으로 작동합니다.

또한 스팸 및 기타 등등을 피하기 위해 PHPMailer과 같은 라이브러리를 사용하는 것이 좋습니다. 이메일을 스팸 메일로 보내는 것을 100 % 보장하지는 않습니다. 이것은 단지 PHP의 mail() 기능의 개선안입니다. 서버 구성과 같이 고려해야 할 사항이 있습니다. 그러나이 경우에 내가 말했듯이 이것은 단지 추천 일뿐입니다. mail() 또는 PHPMailer를 모두 사용할 수 있습니다. 선택 사항입니다.

+0

각 헤더 끝에 필수 \ r \ n이 누락 된 것 같습니다. – pvg

+0

라이브러리를 사용하면 스팸 필터를 어떻게 피할 수 있습니까? – Barmar

+0

@pvg, 놓쳤습니다. 그들을 추가했습니다. Barmar, 저는 PHPMailer를 사용하면 메일이 스팸으로가는 것을 막을 수있는 100 % 확률이 있다고 생각하지 않지만,이 목적에 도움이되도록 작성된 라이브러리이므로 헤더와 모두, 그것은 또한 서버 설정 등등에 달려있다. – Ionut

관련 문제