2

我可以通过此代码发送电子邮件(网址:http://stackoverflow.com/questions/712392/send-email-using-gmail-smtp-server-from-php-page)

但错误显示如下...

严格标准:不应静态调用非静态方法 PEAR::isError(),假设 $this 来自第 365 行 /Users/abc/pear/share/pear/Mail/smtp.php 中的不兼容上下文

严格标准:不应静态调用非静态方法 PEAR::isError(),假设 $this 来自第 450 行 /Users/abc/pear/share/pear/Net/SMTP.php 中的不兼容上下文

严格标准:不应静态调用非静态方法 PEAR::isError(),假设 $this 来自第 467 行 /Users/abc/pear/share/pear/Net/SMTP.php 中的不兼容上下文

严格标准:不应静态调用非静态方法 PEAR::isError(),假设 $this 来自第 474 行 /Users/abc/pear/share/pear/Net/SMTP.php 中的不兼容上下文

严格标准:不应静态调用非静态方法 PEAR::isError(),假设 $this 来自第 517 行 /Users/abc/pear/share/pear/Net/SMTP.php 中的不兼容上下文

严格标准:不应静态调用非静态方法 PEAR::isError(),假设 $this 来自第 265 行 /Users/abc/pear/share/pear/Net/SMTP.php 中的不兼容上下文

严格标准:不应静态调用非静态方法 PEAR::isError(),假设 $this 来自第 521 行 /Users/abc/pear/share/pear/Net/SMTP.php 中的不兼容上下文

严格标准:不应静态调用非静态方法 PEAR::isError(),假设 $this 来自第 376 行 /Users/abc/pear/share/pear/Mail/smtp.php 中的不兼容上下文

严格标准:不应静态调用非静态方法 PEAR::isError(),假设 $this 来自第 628 行 /Users/abc/pear/share/pear/Net/SMTP.php 中的不兼容上下文

严格标准:不应静态调用非静态方法 PEAR::isError(),假设 $this 来自第 809 行 /Users/abc/pear/share/pear/Net/SMTP.php 中的不兼容上下文

严格标准:不应静态调用非静态方法 PEAR::isError(),假设 $this 来自第 265 行 /Users/abc/pear/share/pear/Net/SMTP.php 中的不兼容上下文

严格标准:不应静态调用非静态方法 PEAR::isError(),假设 $this 来自第 813 行 /Users/abc/pear/share/pear/Net/SMTP.php 中的不兼容上下文

严格标准:不应静态调用非静态方法 PEAR::isError(),假设 $this 来自第 821 行 /Users/abc/pear/share/pear/Net/SMTP.php 中的不兼容上下文

严格标准:不应静态调用非静态方法 PEAR::isError(),假设 $this 来自第 265 行 /Users/abc/pear/share/pear/Net/SMTP.php 中的不兼容上下文

严格标准:不应静态调用非静态方法 PEAR::isError(),假设 $this 来自第 825 行 /Users/abc/pear/share/pear/Net/SMTP.php 中的不兼容上下文

严格标准:不应静态调用非静态方法 PEAR::isError(),假设 $this 来自第 829 行 /Users/abc/pear/share/pear/Net/SMTP.php 中的不兼容上下文

严格标准:不应静态调用非静态方法 PEAR::isError(),假设 $this 来自第 265 行 /Users/abc/pear/share/pear/Net/SMTP.php 中的不兼容上下文

严格标准:不应静态调用非静态方法 PEAR::isError(),假设 $this 来自第 834 行 /Users/abc/pear/share/pear/Net/SMTP.php 中的不兼容上下文

严格标准:不应静态调用非静态方法 PEAR::isError(),假设 $this 来自第 656 行 /Users/abc/pear/share/pear/Net/SMTP.php 中的不兼容上下文

严格标准:不应静态调用非静态方法 PEAR::isError(),假设 $this 来自第 249 行 /Users/abc/pear/share/pear/Mail/smtp.php 中的不兼容上下文

严格标准:不应静态调用非静态方法 PEAR::isError(),假设 $this 来自第 285 行 /Users/abc/pear/share/pear/Mail/smtp.php 中的不兼容上下文

严格标准:不应静态调用非静态方法 PEAR::isError(),假设 $this 来自第 952 行 /Users/abc/pear/share/pear/Net/SMTP.php 中的不兼容上下文

严格标准:不应静态调用非静态方法 PEAR::isError(),假设 $this 来自第 265 行 /Users/abc/pear/share/pear/Net/SMTP.php 中的不兼容上下文

严格标准:不应静态调用非静态方法 PEAR::isError(),假设 $this 来自第 955 行 /Users/abc/pear/share/pear/Net/SMTP.php 中的不兼容上下文

严格标准:不应静态调用非静态方法 Mail_RFC822::parseAddressList(),假设 $this 来自第 253 行 /Users/abc/pear/share/pear/Mail.php 中的不兼容上下文

严格标准:不应静态调用非静态方法 PEAR::isError(),假设 $this 来自第 982 行 /Users/abc/pear/share/pear/Net/SMTP.php 中的不兼容上下文

严格标准:不应静态调用非静态方法 PEAR::isError(),假设 $this 来自第 265 行 /Users/abc/pear/share/pear/Net/SMTP.php 中的不兼容上下文

严格标准:不应静态调用非静态方法 PEAR::isError(),假设 $this 来自第 985 行 /Users/abc/pear/share/pear/Net/SMTP.php 中的不兼容上下文

严格标准:不应静态调用非静态方法 PEAR::isError(),假设 $this 来自第 1063 行 /Users/abc/pear/share/pear/Net/SMTP.php 中的不兼容上下文

严格标准:不应静态调用非静态方法 PEAR::isError(),假设 $this 来自第 265 行 /Users/abc/pear/share/pear/Net/SMTP.php 中的不兼容上下文

严格标准:不应静态调用非静态方法 PEAR::isError(),假设 $this 来自第 1066 行 /Users/abc/pear/share/pear/Net/SMTP.php 中的不兼容上下文

严格标准:不应静态调用非静态方法 PEAR::isError(),假设 $this 来自第 1126 行 /Users/abc/pear/share/pear/Net/SMTP.php 中的不兼容上下文

严格标准:不应静态调用非静态方法 PEAR::isError(),假设 $this 来自第 265 行 /Users/abc/pear/share/pear/Net/SMTP.php 中的不兼容上下文

严格标准:不应静态调用非静态方法 PEAR::isError(),假设 $this 来自第 1136 行 /Users/abc/pear/share/pear/Net/SMTP.php 中的不兼容上下文

严格标准:不应静态调用非静态方法 PEAR::isError(),假设 $this 来自第 1141 行 /Users/abc/pear/share/pear/Net/SMTP.php 中的不兼容上下文

严格标准:不应静态调用非静态方法 PEAR::isError(),假设 $this 来自第 491 行 /Users/abc/pear/share/pear/Net/SMTP.php 中的不兼容上下文

严格标准:不应静态调用非静态方法 PEAR::isError(),假设 $this 来自第 265 行 /Users/abc/pear/share/pear/Net/SMTP.php 中的不兼容上下文

严格标准:不应静态调用非静态方法 PEAR::isError(),假设 $this 来自第 494 行 /Users/abc/pear/share/pear/Net/SMTP.php 中的不兼容上下文

严格标准:不应静态调用非静态方法 PEAR::isError(),假设 $this 来自第 497 行 /Users/abc/pear/share/pear/Net/SMTP.php 中的不兼容上下文

严格标准:非静态方法 PEAR::isError() 不应在第 27 行的 /Applications/MAMP/htdocs/p/testEmail.php 中静态调用

消息发送成功!

在 php.ini 文件中,我还将错误报告级别更改为

“error_reporting = E_ALL ^ E_STRICT”

谁能帮我解决这个问题?

4

3 回答 3

4

首先,您要告诉 PHP 显示所有错误和严格的标准违规行为。要忽略严格标准(非致命),请将您的错误报告级别更改为

 // PHP.INI
 error_reporting=E_ERROR^E_PARSE

 //or better, inline with error_reporting()
 error_reporting(E_ERROR | E_PARSE);

错误的根源是 PEAR 的邮件类定义。我也在使用 Mac 服务器和 PEAR。它是多封电子邮件的更好解决方案,但是,它会引发严格标准错误。你可以无视。

在您的 send() 调用之后,您可能有这行代码。

 if (PEAR::isError($mail_object)) {print($mail_object->getMessage());}

我更喜欢去掉这条线,而是使用 try/catch/exception。

我会通过对您的 PHP.INI 文件或内联(最佳选择)的错误报告修改之一来更改您的错误报告级别。

于 2012-09-27T11:33:31.407 回答
0

迟到总比不到好。检查这个答案:https ://stackoverflow.com/questions/19248503/non-static-method-peariserror-should-not-be-call-statically?r=SearchResults&s=1|114.7471

您可以使用(new PEAR)->isError($variable)is_a($obj, 'PEAR_Error')但最好升级您的代码并使用更现代的库。

于 2020-09-30T11:12:06.950 回答
0

如果您在 cPanel 服务器上,请进入您的 PEAR 包并确保您已更新您的 Net Server 和 SMTP 包。您应该安装 net_socket2 和 net_smtp2 包。这解决了我升级到 PHP 5.6 后的问题。

于 2017-12-05T14:00:24.830 回答