无法解决错误PHPmailer

时间:2017-03-03 13:47:47

标签: php phpmailer

当我使用我的登录表注册和帐户并且它应该发送确认电子邮件时,它给了我这个错误:

Fatal error: Uncaught Error: Class 'SMTP' not found in C:\xampp\htdocs\login\mailer\class.phpmailer.php:1479
Stack trace:
#0 C:\xampp\htdocs\login\mailer\class.phpmailer.php(1562): PHPMailer->getSMTPInstance()
#1 C:\xampp\htdocs\login\mailer\class.phpmailer.php(1499): PHPMailer->smtpConnect(Array)
#2 C:\xampp\htdocs\login\mailer\class.phpmailer.php(1336): PHPMailer->smtpSend('Date: Fri, 3 Ma...', 'This is a multi...')
#3 C:\xampp\htdocs\login\mailer\class.phpmailer.php(1214): PHPMailer->postSend()
#4 C:\xampp\htdocs\login\class.user.php(106): PHPMailer->send()
#5 C:\xampp\htdocs\login\signup.php(43): USER->send_mail('Rainier.laan@ho...', 'Hello Rainier, ...', 'Confirm Registr...')
#6 {main} thrown in C:\xampp\htdocs\login\mailer\class.phpmailer.php on line 1479

我抬头看了1479号线的内容,就是这样:

if (!is_object($this->smtp)) {
        $this->smtp = new SMTP;
    }

我无法看到错误是什么。我是新手。你能帮助我吗?

2 个答案:

答案 0 :(得分:0)

根据documentation

使用PHPMailer自带的自动加载器

不久前,PHPMailer改变了它加载类的方式,以便它与作曲家,许多框架和PHP PSR-0自动加载标准更兼容。请注意,因为我们支持PHP回到5.0版,所以我们不能支持更新的PSR-4标准,也不能使用命名空间。以前,PHPMailer显式加载了SMTP类,如果要提供自己的实现,这会导致问题。您可能已经看到过这样的旧脚本:

require 'class.phpmailer.php';

如果只是这样做,则SMTP发送将失败并显示 类'未找到SMTP'错误 。您需要显式包含class.smtp.php文件(阅读README以获取有关所需文件的信息),或使用推荐的使用composer或提供的自动加载器的方法,如下所示:

require 'PHPMailerAutoload.php';

答案 1 :(得分:-1)

检查是否已下载所有项目文件。 SMTP类代码在this文件中的PHPMailer项目中定义。

如果您使用composer下载了PHPMailer,请确保您有一行require_once 'vendor/autoload.php。否则,在使用PHPMailer类之前,请检查是否有类似require_once 'mailer/PHPMailerAutoload.php的行。