我在尝试改进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。
感谢您的回答。
答案 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;
}