Php 无法在Codeigniter中加载库中的文件

Php 无法在Codeigniter中加载库中的文件,php,codeigniter,phpmailer,Php,Codeigniter,Phpmailer,我在控制器中编写了一个函数来使用PHPMailer,它工作得很好。之后,我经常需要这个函数,最终我决定编写这个库。但在控制器中执行此操作并加载库时,会出现如下错误: 消息:调用未定义的方法PHPMailerOAuth::isSMTP() 毕竟我发现路径有问题!我试过你想的,但没用! 我试过把Controller作为库 我试过include(),require\u once(),require,有或没有APPATH。 我已经尽可能多地搜索了。甚至我也读过关于第三方的文章,但我不明白。 有没有办法在

我在控制器中编写了一个函数来使用PHPMailer,它工作得很好。之后,我经常需要这个函数,最终我决定编写这个库。但在控制器中执行此操作并加载库时,会出现如下错误:

消息:调用未定义的方法PHPMailerOAuth::isSMTP()

毕竟我发现路径有问题!我试过你想的,但没用! 我试过把Controller作为库 我试过
include()
require\u once()
require
,有或没有
APPATH
。 我已经尽可能多地搜索了。甚至我也读过关于第三方的文章,但我不明白。 有没有办法在库中加载PHPMailer文件? 先谢谢你

它是一个名为PHPMailer.php的库

class PHPMailer {

public function singleMail($setFromTitle,$setToMail,$setToName,$setSubject,$setMessage)
{
    date_default_timezone_set('Etc/UTC');
    require 'vendor/phpmailer/phpmailer/PHPMailerAutoload.php';
    require 'vendor/autoload.php';
    $mail = new PHPMailerOAuth;
    $mail->CharSet = 'UTF-8';
    $mail->isSMTP();
    $mail->SMTPDebug = 2;
    $mail->Debugoutput = 'html';
    $mail->Host = 'smtp.gmail.com';
    $mail->Port = 587;
    $mail->SMTPSecure = 'tls';
    $mail->SMTPAuth = true;
    $mail->AuthType = 'XOAUTH2';
    $mail->oauthUserEmail = "XXX@gmail.com";
    $mail->oauthClientId = "XXX";
    $mail->oauthClientSecret = "XXX";
    $mail->oauthRefreshToken = "XXX";
    $mail->setFrom('XXXy@zounkan.com', $setFromTitle);
    $mail->addAddress($setToMail, $setToName);
    $mail->Subject = $setSubject;
    $mail->msgHTML($setMessage);
    if (!$mail->send()) {
        echo "Mailer Error: " . $mail->ErrorInfo;
    } else {
        echo "Message sent!";
    }
}
这就是我在控制器函数中加载这个库的方式:

$this->load->library('PHPMailer');
$this->phpmailer->singleMail($setFromTitle,$setToMail,$setToName,$setSubject,$setMessage);

据PHPMailer的主人说,他帮助我并最终解决了这个问题! 这应该发生在每个程序员身上,当我修复它时,我感到惊讶!问题是关于类名!我将PHPMailer类定义为库的类,这是不允许的!因此,尽管有上面提到的代码,我还是应该试试这个,它也可以很好地工作:

class Sendingmail {
     public function singleMail($setFromTitle,$setToMail,$setToName,$setSubject,$setMessage) {
          // Rest of codes
     }
}

因此,不要将类命名为PHPMailer或类似的东西,这可能是在核心函数中定义的

给我们看看你的代码。这就是我所有的。你试过使用类外的require吗?我知道什么是Phpmailer,但你没有展示你的全部代码。我在任何地方都看不到
PHPMailerOAuth
类。问题不在于路径,问题在于类
PHPMailerOAuth
没有方法
isSMTP
。只有
PHPMailer
类具有此方法。