Intereting Posts

отправка почты с использованием php и груши на окнах

Я пытаюсь отправить электронное письмо с использованием php-скрипта, но я получаю ошибки, это мой код. Я использую xampp netbeans и windows. и я включил грушу в файл php.ini, но все еще имею свои ошибки какие-либо идеи

require_once "Mail.php"; $from = "onlinebookstorb@gmail.com"; $to = "'$email'"; $subject = "Online book store information"; $body = "This is your Id '$userID' click <a href =../index.php > here </a> to change to go to the website "; //todo change URL to make it work when it is online $host = "ssl://smtp.gmail.com"; $port = "993"; $host = "smtp.gmail.com"; $username = "onlinebookstoreb@gmail.com"; $password = ""; $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>"); } 

и это ошибки, которые я получаю:

Строгие стандарты: нестатический метод Mail :: factory () не следует вызывать статически в C: \ xampp \ htdocs \ OnlineBookStore \ Store \ Register.php в строке 85

Строгий стандарт: нестатический метод PEAR :: isError () не следует вызывать статически, предполагая $ this из несовместимого контекста в C: \ xampp \ php \ PEAR \ Mail \ smtp.php в строке 365

Строгие стандарты: нестатический метод PEAR :: isError () не следует вызывать статически, предполагая $ this из несовместимого контекста в C: \ xampp \ php \ PEAR \ Net \ SMTP.php в строке 450

Строгие стандарты: нестатический метод PEAR :: isError () не следует называть статическим, предполагая $ this из несовместимого контекста в C: \ xampp \ php \ PEAR \ Net \ SMTP.php в строке 467

Я просто столкнулся с той же проблемой и решил ее использовать:

 @require_once "Mail.php"; ... $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)) { 

Обратите внимание, что я добавил @ ко всем вызовам груши / почты.

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

Да, метод jeroens не показывает предупреждающие сообщения, но действительно ли он решает проблему? apprehending @ просто скрывает предупреждение, связанное с ним.

Чтобы устранить проблему в Mail.php, выполните следующие действия:

 function &factory($driver, $params = array()) 

Измените его на

 static function &factory($driver, $params = array()) 

Причина этой ошибки заключается в том, что PEAR Mail не был обновлен до стандартов PHP5 и все еще использует PHP4 так постепенно, как серверы становятся совместимыми с PHP5, это станет более частым. Лучше исправить, а не спрятаться.

Надеюсь это поможет