2017-05-09 10 views
0

私はPHPMailerを使用するためにController内に関数を書きました。その後、私はこの機能が頻繁に必要で、結局私は図書館に書き込むことにしました。これを行うとコントローラ内ライブラリをロードするときしかし、それはこのようなエラーがあります:Codeigniterのライブラリ内にファイルをロードできません

メッセージ:私は問題がある考え出したすべての後に、未定義のメソッド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.com"; 
    $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クラスを定義し、それは許可されていません!だから、intead上記のコード(I'vが言及したこと)私はこれを試してみてください、それは同様に正常に動作します:だから

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

phpmailerのに自分のクラスを名前付きまたはおそらくコア機能で定義されている。このようなものはありません!

関連する問題