PHP:PEAR邮件错误(PHP: PEAR mail message error)

2019-09-23 02:12发布

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

但显示出的错误如下...

严格的标准:非静态方法PEAR :: ISERROR()不应该被静态调用,在/Users/abc/pear/share/pear/Mail/smtp.php假设这$从不兼容方面上线365

严格的标准:非静态方法PEAR :: ISERROR()不应该被静态调用,在/Users/abc/pear/share/pear/Net/SMTP.php假设这$从不兼容方面上线450

严格的标准:非静态方法PEAR :: ISERROR()不应该被静态调用,在/Users/abc/pear/share/pear/Net/SMTP.php假设这$从不兼容方面上线467

严格的标准:非静态方法PEAR :: ISERROR()不应该被静态调用,在/Users/abc/pear/share/pear/Net/SMTP.php假设这$从不兼容方面上线474

严格的标准:非静态方法PEAR :: ISERROR()不应该被静态调用,在/Users/abc/pear/share/pear/Net/SMTP.php假设这$从不兼容方面上线517

严格的标准:非静态方法PEAR :: ISERROR()不应该被静态调用,在/Users/abc/pear/share/pear/Net/SMTP.php假设这$从上下文不相容线265

严格的标准:非静态方法PEAR :: ISERROR()不应该被静态调用,在/Users/abc/pear/share/pear/Net/SMTP.php假设这$从不兼容方面上线521

严格的标准:非静态方法PEAR :: ISERROR()不应该被静态调用,在/Users/abc/pear/share/pear/Mail/smtp.php假设这$从不兼容方面上线376

严格的标准:非静态方法PEAR :: ISERROR()不应该被静态调用,在/Users/abc/pear/share/pear/Net/SMTP.php假设这$从不兼容方面上线628

严格的标准:非静态方法PEAR :: ISERROR()不应该被静态调用,在/Users/abc/pear/share/pear/Net/SMTP.php假设这$从不兼容方面上线809

严格的标准:非静态方法PEAR :: ISERROR()不应该被静态调用,在/Users/abc/pear/share/pear/Net/SMTP.php假设这$从上下文不相容线265

严格的标准:非静态方法PEAR :: ISERROR()不应该被静态调用,在/Users/abc/pear/share/pear/Net/SMTP.php假设这$从不兼容方面行813

严格的标准:非静态方法PEAR :: ISERROR()不应该被静态调用,在/Users/abc/pear/share/pear/Net/SMTP.php假设这$从不兼容方面上线821

严格的标准:非静态方法PEAR :: ISERROR()不应该被静态调用,在/Users/abc/pear/share/pear/Net/SMTP.php假设这$从上下文不相容线265

严格的标准:非静态方法PEAR :: ISERROR()不应该被静态调用,在/Users/abc/pear/share/pear/Net/SMTP.php假设这$从不兼容方面上线825

严格的标准:非静态方法PEAR :: ISERROR()不应该被静态调用,在/Users/abc/pear/share/pear/Net/SMTP.php假设这$从不兼容方面上线829

严格的标准:非静态方法PEAR :: ISERROR()不应该被静态调用,在/Users/abc/pear/share/pear/Net/SMTP.php假设这$从上下文不相容线265

严格的标准:非静态方法PEAR :: ISERROR()不应该被静态调用,在/Users/abc/pear/share/pear/Net/SMTP.php假设这$从不兼容方面上线834

严格的标准:非静态方法PEAR :: ISERROR()不应该被静态调用,在/Users/abc/pear/share/pear/Net/SMTP.php假设这$从不兼容方面上线656

严格的标准:非静态方法PEAR :: ISERROR()不应该被静态调用,在/Users/abc/pear/share/pear/Mail/smtp.php假设这$从不兼容方面上线249

严格的标准:非静态方法PEAR :: ISERROR()不应该被静态调用,在/Users/abc/pear/share/pear/Mail/smtp.php假设这$从不兼容方面上线285

严格的标准:非静态方法PEAR :: ISERROR()不应该被静态调用,在/Users/abc/pear/share/pear/Net/SMTP.php假设这$从不兼容方面上线952

严格的标准:非静态方法PEAR :: ISERROR()不应该被静态调用,在/Users/abc/pear/share/pear/Net/SMTP.php假设这$从上下文不相容线265

严格的标准:非静态方法PEAR :: ISERROR()不应该被静态调用,在/Users/abc/pear/share/pear/Net/SMTP.php假设这$从不兼容方面上线955

严格的标准:非静态方法Mail_RFC822 :: parseAddressList()不应该被静态调用,假设$这个从线253 /Users/abc/pear/share/pear/Mail.php不兼容的情况下

严格的标准:非静态方法PEAR :: ISERROR()不应该被静态调用,在/Users/abc/pear/share/pear/Net/SMTP.php假设这$从不兼容方面上线982

严格的标准:非静态方法PEAR :: ISERROR()不应该被静态调用,在/Users/abc/pear/share/pear/Net/SMTP.php假设这$从上下文不相容线265

严格的标准:非静态方法PEAR :: ISERROR()不应该被静态调用,在/Users/abc/pear/share/pear/Net/SMTP.php假设这$从不兼容方面上线985

严格的标准:非静态方法PEAR :: ISERROR()不应该被静态调用,在/Users/abc/pear/share/pear/Net/SMTP.php假设这$从不兼容方面上线1063

严格的标准:非静态方法PEAR :: ISERROR()不应该被静态调用,在/Users/abc/pear/share/pear/Net/SMTP.php假设这$从上下文不相容线265

严格的标准:非静态方法PEAR :: ISERROR()不应该被静态调用,在/Users/abc/pear/share/pear/Net/SMTP.php假设这$从不兼容方面上线1066

严格的标准:非静态方法PEAR :: ISERROR()不应该被静态调用,在/Users/abc/pear/share/pear/Net/SMTP.php假设这$从不兼容方面上线1126

严格的标准:非静态方法PEAR :: ISERROR()不应该被静态调用,在/Users/abc/pear/share/pear/Net/SMTP.php假设这$从上下文不相容线265

严格的标准:非静态方法PEAR :: ISERROR()不应该被静态调用,在/Users/abc/pear/share/pear/Net/SMTP.php假设这$从不兼容方面上线1136

严格的标准:非静态方法PEAR :: ISERROR()不应该被静态调用,在/Users/abc/pear/share/pear/Net/SMTP.php假设这$从不兼容方面上线1141

严格的标准:非静态方法PEAR :: ISERROR()不应该被静态调用,在/Users/abc/pear/share/pear/Net/SMTP.php假设这$从不兼容方面上线491

严格的标准:非静态方法PEAR :: ISERROR()不应该被静态调用,在/Users/abc/pear/share/pear/Net/SMTP.php假设这$从上下文不相容线265

严格的标准:非静态方法PEAR :: ISERROR()不应该被静态调用,在/Users/abc/pear/share/pear/Net/SMTP.php假设这$从不兼容方面上线494

严格的标准:非静态方法PEAR :: ISERROR()不应该被静态调用,在/Users/abc/pear/share/pear/Net/SMTP.php假设这$从不兼容方面上线497

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

邮件发送成功!

在php.ini文件,我也改变错误报告水平

“使用error_reporting = E_ALL ^ E_STRICT”

谁能帮我解决这个问题呢?

Answer 1:

首先你告诉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 /异常,而不是。

我会改变与错误报告修改php.ini文件或内联(最好的选择)的一个你的错误报告级别。



Answer 2:

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



文章来源: PHP: PEAR mail message error