2013-06-04 2 views
0

Учитывая следующий код PHP:почта() в PHP не работает должным образом

<html> 
    <body> 
    <?php 
     $fname ="First Name = ".$_REQUEST['fname']."\n"; 
     $lname ="Last Name = ".$_REQUEST['lname']."\n"; 
     $breakfast = "Desired Breakfast = ".$_REQUEST['breakfast']."\n"; 
     $floor ="Desired Floor = ".$_REQUEST['floor']."\n"; 
     $to = "[email protected]"; 
     $email="[email protected]"; 
     $subject="shenkar php form from erez geva site"; 
     $body =$fname.$lname.$breakfast.$floor; 
     if (mail($to, $subject, $body, "From: $email")){ 
      header("Location: http://localhost:9090/sent.html"); 
      exit(); 
     }else{ 
      echo("<p>Message delivery failed...</p>"); 
     } 
    ?> 
    </body> 
</html> 

не работает. HTML-файл индекса, который пользователь выбирает из желаемых параметров, хорошо написан (accouring to me Professor), поэтому давайте предположим, что проблема в другом месте. Если я перейти непосредственно к этому PHP файл: локальный \ send.php я получаю эту ошибку:

Warning: mail() [function.mail]: Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in C:\wamp\www\send.php on line 12

Что такое meanning это?

+0

** Я использую Wamp 2.2e – user2162550

+2

Ну, давайте посмотрим ... у вас есть почтовый сервер, работающий на localhost и прослушивающий порт 25? – Jon

+1

Это потому, что почта не может быть отправлена ​​с localhost, если у вас нет надлежащей настройки почтовой службы. – Fabio

ответ

1

Для этого вам необходимо установить локальный почтовый сервер. Если вы хотите отправить его на внешние адреса электронной почты, это может привести к нежелательным сообщениям электронной почты или может не прийти вообще.

Хороший почтовый_сервер, который я использую (я использую его на Linux, но он также доступен для Windows) является Axigen: http://www.axigen.com/mail-server/download/

Вы, возможно, потребуется некоторый опыт работы с почтовыми серверами, чтобы установить его, но как только он работает, вы можете сделайте все, что хотите.

+0

[smtp4dev] (http://smtp4dev.codeplex.com/) является хорошей простой в использовании альтернативой Windows. – zessx

1

Ваш скрипт пытается отправить электронное письмо, но на локальном сервере не настроена надлежащая настройка электронной почты.

if (mail($to, $subject, $body, "From: $email")){ Это линия, вызывающая проблему. Функция mail - это функция PHP, которая отправляет электронное письмо.

Когда ваш скрипт достигает этого вызова, PHP пытается подключиться к почтовой службе на вашем сервере, которую он не может выполнить, и поэтому сбой.

Скорее всего, нет службы почтовой службы, или возможно, что она настроена не по умолчанию. В любом случае это один для вашего системного администратора.

+0

Как я могу это сделать? – user2162550

+1

Перейдите к своему администратору/администратору системы. Скажите им, что вы хотите отправить электронную почту с PHP. Они будут либо: (a) сообщать вам, какая правильная конфигурация/исправить конфигурацию для вас, (b) установить для вас почтовый сервер, (c) сообщить вам, что в их политику не разрешено отправлять письма электронной почтой. – ose

-1

Вы не можете отправлять электронную почту с локального сервера. Загрузите файлы на веб-сервер, а затем попробуйте запустить этот код. Это будет работать.

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