使用PEAR Mail扩展时,可以让PHP忽略静态方法错误吗?

我正在使用PHP 5的PEAR邮件扩展.我在发送邮件时遇到困难,因为它返回此错误:非静态方法Mail :: factory()不应该静态调用.

这是我的代码:

$from = "Stephen <stephen@gmail.com>";
     $to = "helper <helperjohn@gmail.com>";
     $subject = "Email Test!";
     $body = "email test body";

     $host = "smtp.nvrforget.com";
     $username = "username@nvrforget.com";
     $password = "*************";

     $headers = array ('From' => $from,
       'To' => $to,
       'Subject' => $subject);
     $smtp = Mail::factory('smtp',
       array ('host' => $host,
         '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>");
      }

我没有收到电子邮件.

如果可以的话,我会使用Swiftmailer,但我的虚拟主机不会让我.

最佳答案
由于PEAR仍然支持PHP4,你可以……

>创建要使用的邮件对象,例如

$mail = new Mail;
$smtp = $mail->factory(...

要么
>禁用E_STRICT错误

error_reporting(E_ALL ^ E_STRICT);

如果你坚持使用PEAR,后者可能更好,因为内部静态调用其他非静态方法.

转载注明原文:使用PEAR Mail扩展时,可以让PHP忽略静态方法错误吗? - 代码日志