我可以通过此处的代码发送电子邮件(网址:http://stackoverflow.com/questions/712392/send-email-using-gmail-smtp-server-from-php-page)
但错误显示如下......
严格标准:非静态方法PEAR :: isError()不应该静态调用,假设来自365行/Users/abc/pear/share/pear/Mail/smtp.php中的不兼容上下文中的$ this
严格标准:非静态方法PEAR :: isError()不应该静态调用,假设$ 450来自第450行的/Users/abc/pear/share/pear/Net/SMTP.php中的不兼容上下文
严格标准:非静态方法PEAR :: isError()不应该静态调用,假设$ 46来自第467行/Users/abc/pear/share/pear/Net/SMTP.php中的不兼容上下文
严格标准:非静态方法PEAR :: isError()不应该静态调用,假设$ 47来自第474行/Users/abc/pear/share/pear/Net/SMTP.php中的不兼容上下文
严格标准:非静态方法PEAR :: isError()不应该静态调用,假设$ 5来自517行/Users/abc/pear/share/pear/Net/SMTP.php中的不兼容上下文
严格标准:非静态方法PEAR :: isError()不应该静态调用,假设来自第265行的/Users/abc/pear/share/pear/Net/SMTP.php中的不兼容上下文中的$ this
严格标准:非静态方法PEAR :: isError()不应该静态调用,假设$ 52来自第521行/Users/abc/pear/share/pear/Net/SMTP.php中的不兼容上下文
严格标准:非静态方法PEAR :: isError()不应该静态调用,假设$ 37来自第376行/Users/abc/pear/share/pear/Mail/smtp.php中的不兼容上下文
严格标准:非静态方法PEAR :: isError()不应该静态调用,假设$ 62来自628行/Users/abc/pear/share/pear/Net/SMTP.php中的不兼容上下文
严格标准:非静态方法PEAR :: isError()不应该静态调用,假设来自809行/Users/abc/pear/share/pear/Net/SMTP.php中不兼容上下文的$ this
严格标准:非静态方法PEAR :: isError()不应该静态调用,假设来自第265行的/Users/abc/pear/share/pear/Net/SMTP.php中的不兼容上下文中的$ this
严格标准:非静态方法PEAR :: isError()不应该静态调用,假设$ 8来自第813行/Users/abc/pear/share/pear/Net/SMTP.php中的不兼容上下文
严格标准:非静态方法PEAR :: isError()不应该静态调用,假设$ 8来自821行/Users/abc/pear/share/pear/Net/SMTP.php中的不兼容上下文
严格标准:非静态方法PEAR :: isError()不应该静态调用,假设来自第265行的/Users/abc/pear/share/pear/Net/SMTP.php中的不兼容上下文中的$ this
严格标准:非静态方法PEAR :: isError()不应该静态调用,假设$ 8来自825行/Users/abc/pear/share/pear/Net/SMTP.php中的不兼容上下文
严格标准:非静态方法PEAR :: isError()不应该静态调用,假设$ 8来自829行/Users/abc/pear/share/pear/Net/SMTP.php中的不兼容上下文
严格标准:非静态方法PEAR :: isError()不应该静态调用,假设来自第265行的/Users/abc/pear/share/pear/Net/SMTP.php中的不兼容上下文中的$ this
严格标准:非静态方法PEAR :: isError()不应该静态调用,假设$ 8来自第834行/Users/abc/pear/share/pear/Net/SMTP.php中的不兼容上下文
严格标准:非静态方法PEAR :: isError()不应该静态调用,假设$ 65来自第656行/Users/abc/pear/share/pear/Net/SMTP.php中的不兼容上下文
严格标准:非静态方法PEAR :: isError()不应该静态调用,假设$ 24来自第249行/Users/abc/pear/share/pear/Mail/smtp.php中的不兼容上下文
严格标准:非静态方法PEAR :: isError()不应该静态调用,假设$ 28来自第285行/Users/abc/pear/share/pear/Mail/smtp.php中的不兼容上下文
严格标准:非静态方法PEAR :: isError()不应该静态调用,假设来自第952行/Users/abc/pear/share/pear/Net/SMTP.php中不兼容上下文的$ this
严格标准:非静态方法PEAR :: isError()不应该静态调用,假设来自第265行的/Users/abc/pear/share/pear/Net/SMTP.php中的不兼容上下文中的$ this
严格标准:非静态方法PEAR :: isError()不应该静态调用,假设$ 9来自955行/Users/abc/pear/share/pear/Net/SMTP.php中的不兼容上下文
严格标准:不应静态调用非静态方法Mail_RFC822 :: parseAddressList(),假设来自第253行/Users/abc/pear/share/pear/Mail.php中不兼容上下文的$ this
严格标准:非静态方法PEAR :: isError()不应该静态调用,假设$ 9来自第982行/Users/abc/pear/share/pear/Net/SMTP.php中的不兼容上下文
严格标准:非静态方法PEAR :: isError()不应该静态调用,假设来自第265行的/Users/abc/pear/share/pear/Net/SMTP.php中的不兼容上下文中的$ this
严格标准:非静态方法PEAR :: isError()不应该静态调用,假设$ 9来自985行/Users/abc/pear/share/pear/Net/SMTP.php中的不兼容上下文
严格标准:非静态方法PEAR :: isError()不应该静态调用,假设$ 10来自1063行/Users/abc/pear/share/pear/Net/SMTP.php中的不兼容上下文
严格标准:非静态方法PEAR :: isError()不应该静态调用,假设来自第265行的/Users/abc/pear/share/pear/Net/SMTP.php中的不兼容上下文中的$ this
严格标准:非静态方法PEAR :: isError()不应该静态调用,假设$ 10来自1066行/Users/abc/pear/share/pear/Net/SMTP.php中的不兼容上下文
严格标准:非静态方法PEAR :: isError()不应该静态调用,假设$ 11来自第1126行/Users/abc/pear/share/pear/Net/SMTP.php中的不兼容上下文
严格标准:非静态方法PEAR :: isError()不应该静态调用,假设来自第265行的/Users/abc/pear/share/pear/Net/SMTP.php中的不兼容上下文中的$ this
严格标准:非静态方法PEAR :: isError()不应该静态调用,假设$ 11来自1136行/Users/abc/pear/share/pear/Net/SMTP.php中的不兼容上下文
严格标准:非静态方法PEAR :: isError()不应该静态调用,假设$ 11来自第1141行/Users/abc/pear/share/pear/Net/SMTP.php中的不兼容上下文
严格标准:非静态方法PEAR :: isError()不应该静态调用,假设$ 49来自491行/Users/abc/pear/share/pear/Net/SMTP.php中的不兼容上下文
严格标准:非静态方法PEAR :: isError()不应该静态调用,假设来自第265行的/Users/abc/pear/share/pear/Net/SMTP.php中的不兼容上下文中的$ this
严格标准:非静态方法PEAR :: isError()不应该静态调用,假设$ 49来自494行/Users/abc/pear/share/pear/Net/SMTP.php中的不兼容上下文
严格标准:非静态方法PEAR :: isError()不应该静态调用,假设$ 49来自第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"
有人可以帮我解决这个问题吗?
答案 0 :(得分: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文件或内联(最佳选项)的错误报告修改之一更改您的错误报告级别。
答案 1 :(得分:0)
如果你在cPanel服务器上,请进入你的PEAR包并确保你已经更新了你的Net Server和SMTP包。您应该安装net_socket2和net_smtp2包。这在升级到PHP 5.6后解决了我的问题。
答案 2 :(得分:0)
迟到总比不到好。检查以下答案:https://stackoverflow.com/questions/19248503/non-static-method-peariserror-should-not-be-called-statically?r=SearchResults&s=1|114.7471
您可以使用(new PEAR)->isError($variable)
或is_a($obj, 'PEAR_Error')
,但最好升级代码并使用更多现代的库。