致命错误:在非对象

时间:2016-07-22 16:01:43

标签: php html phpmailer

我在尝试改进PHPMailer以便在我的网站上发送自动电子邮件时遇到此错误:

  

致命错误:在第116行的/home/u289995868/public_html/es/php/class.user.php中调用非对象的成员函数authorize()


'已损坏'文件中的代码是:

function send_mail($email,$message,$subject)
    {      
        require_once 'mailer/class.phpmailer.php';
        require_once 'mailer/class.pop3.php';
        $pop->authorise('mx1.hostinger.es', 110, 30, 'admin@barreeeiroo.ga', 'xxxxxxxx', 1);
        $mail = new PHPMailer(); 
        $mail->SMTPDebug = 2; 
        $mail->isSMTP();
        $mail->isHTML(false); 
        $mail->Host = 'mx1.hostinger.es';
        $mail->From = 'admin@barreeeiroo.ga';
        $mail->FromName = 'Admin de barreeeiroo.ga';
        $mail->Subject = $subject;
        $mail->Body = $message;
        $mail->addAddress($email);
        if (!$mail->send()) {
            echo $mail->ErrorInfo;
        }
    } 


损坏的行是$pop->authorise(...);

您可以在此处查看require_once个文件:GitHub


感谢您的回答。

2 个答案:

答案 0 :(得分:0)

变量$pop未在您的函数中初始化,因此您实际执行的操作是null->authorise(...);,这没有任何意义。

答案 1 :(得分:0)

$ pop不能在popBeforeSmtp()方法之外使用。尝试:

require_once 'mailer/class.phpmailer.php';
require_once 'mailer/class.pop3.php';
$pop = new POP3;
$pop->authorise('mx1.hostinger.es', 110, 30, 'admin@barreeeiroo.ga', 'xxxxxxxx', 1);
$mail = new PHPMailer(); 
$mail->SMTPDebug = 2; 
$mail->isSMTP();
$mail->isHTML(false); 
$mail->Host = 'mx1.hostinger.es';
$mail->From = 'admin@barreeeiroo.ga';
$mail->FromName = 'Admin de barreeeiroo.ga';
$mail->Subject = $subject;
$mail->Body = $message;
$mail->addAddress($email);
if (!$mail->send()) {
    echo $mail->ErrorInfo;
}