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