2016-12-17 2 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 ах да. Оставьте его на PHP, чтобы иметь плохой API почти для всех! – 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, я не думаю, что существует абсолютно 100% вероятность того, что использование PHPMailer не позволит почтам отправлять спам, но содержит все, что вам нужно, чтобы попытаться их предотвратить, будучи библиотекой, созданной для помощи в этой цели, заголовки и все, это зависит также от конфигурации сервера и т. д. – Ionut

Смежные вопросы