Ошибка отправки электронной почты с использованием PHP, PEAR

Я установил Pear, а затем компоненты Mail и SMTP на свой сервер. Затем я обновил свой файл php.ini до "include_path = ".C:\wamp\bin\php\php5.4.3\pear", поскольку именно там находится Mail.php. По какой-то причине, когда я запускаю этот тестовый скрипт через веб-браузере я получаю следующие ошибки.

Warning: require_once(Mail.php): failed to open stream: No such file or directory in C:\wamp\www\email.php on line 3

и:

Fatal error: require_once(): Failed opening required 'Mail.php' (include_path='.;C:\php\pear') in C:\wamp\www\email.php on line 3

Я новичок в PHP и до прошлой недели даже не слышал о груше, так как обычно устанавливал сервер обмена. Любая помощь будет оценена по достоинству. Ниже приведен тестовый сценарий.

<?php

 require_once "Mail.php";
 $from = "Ty Jacobs <FROM_EMAIL>";
 $to = "Ty Jacobs <TO_EMAIL>";
 $subject = "Hi!";
 $body = "Hi,\n\nHow are you?";

 $host = "ssl://smtp.bizmail.yahoo.com";
 $port = "465";
 $username = "MYUSERNAME";
 $password = "MYPASSWORD";

 $headers = array ('From' => $from,
   'To' => $to,
   'Subject' => $subject);
 $smtp = Mail::factory('smtp',
   array ('host' => $host,
     'port' => $port,
     'auth' => true,
     'username' => $username,
     'password' => $password));

 $mail = $smtp->send($to, $headers, $body);

 if (PEAR::isError($mail)) {
   echo("<p>" . $mail->getMessage() . "</p>");
  } else {
   echo("<p>Message successfully sent!</p>");
  }
 ?>

Файл PHP.INI:

; UNIX: "/path1:/path2"
;include_path = ".:/php/includes"
;
; Windows: "\path1;\path2"
;include_path = ".;c:\php\includes"
include_path=".;C:\wamp\bin\php\php5.4.3\pear"

person Ty Jacobs    schedule 09.07.2013    source источник


Ответы (2)


 (include_path='.;C:\php\pear')

В соответствии с этим ваша папка с грушей была неправильно настроена в php.ini. Вы перезапустили свой сервер?

Кстати, вы забыли точку с запятой в строке пути включения. Должен быть:

.;C:\wamp\bin\php\php5.4.3\pear
person Hast    schedule 09.07.2013
comment
Я перезапустил службы. У меня также есть точка с запятой в pth в php.ini. Я добавил его выше, чтобы вы могли видеть, как именно я добавил его в .ini. - person Ty Jacobs; 09.07.2013
comment
Затем вы редактируете неправильный файл php.ini. Используйте phpconfig(), чтобы получить реальное местоположение файла php.ini. Также, возможно, в php.ini есть дополнительные определения include_path, которые тоже могут быть проблемой. - person Hast; 09.07.2013
comment
Хаст, ты был прав. Этот сервер работает уже 2 года без каких-либо изменений, кроме обновления Apache, MySQL и PHP. Я нашел 4 разных файла PHP.INI. Спасибо всем за вашу помощь. - person Ty Jacobs; 10.07.2013

Вы перезапустили веб-сервер WAMP после внесения изменений? Пренебрежение перезапуском сервера после изменения php.ini обычно является причиной возникновения подобных проблем, поскольку изменения конфигурации не считываются до тех пор, пока веб-сервер не будет перезапущен.

person Jason    schedule 09.07.2013