2017-05-09 48 views
0

我写了一个函数内的控制器使用的PHPMailer并能正常工作。之后,我经常需要这个函数,最后我决定编写Library。但内控制器做到这一点,加载库的时候,它的主要错误是这样的:无法加载文件在笨

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

所有我已经想通了之后出现问题与路径!我试过你在想什么,但它不起作用! 我试过控制器作为库 我试过include(),require_once(),require,有没有APPATH。 我尽可能多地搜索。即使我读过Third Party但我不明白。 有什么想法在Library中加载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 = "[email protected]"; 
    $mail->oauthClientId = "XXX"; 
    $mail->oauthClientSecret = "XXX"; 
    $mail->oauthRefreshToken = "XXX"; 
    $mail->setFrom('[email protected]', $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); 
+0

向我们显示您的代码。 – shaggy

+0

这就是我的全部。 –

+0

你是否尝试过使用课堂的要求? – Axcel

回答

0

根据PHPMailer的拥有者,他帮助我,并最终解决这个问题! 它应该发生在每个程序员身上,当我修好它时,我感到惊讶!问题是关于课程名称!我将PHPMailer类定义为Library的类并且不允许!因此,这一翻译的上方(即我心中已经提到)的代码,我应该试试这个,它工作正常,以及:

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

所以不要叫你的类PHPMailer的或这样的事情这可能已经在核心功能定义!