weiki1998 发表于 2018-4-24 23:46:59

分享一个PHPMailer和CI配合的代码

分享一个PHPMailer和CI配合的代码
以前应该有人发过,我整理了一下

然后顺便把可用的PHPmailer一块放上来

希望大家可以多多交流
我觉得CI超级棒!
这是放在\application\libraries\下,新建一个mailer.php的文件
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Mailer {

    var $mail;

    public function __construct()
    {
      require_once("PHPMailerLib/class.smtp.php");
      require_once('PHPMailerLib/class.phpmailer.php');

    // the true param means it will throw exceptions on errors, which we need to catch
      $this->mail = new PHPMailer(true);

      $this->mail->IsSMTP(); // telling the class to use SMTP

      $this->mail->CharSet = "utf-8";                        // 一定要設定 CharSet 才能正確處理中文
      $this->mail->SMTPDebug= 0;                            // enables SMTP debug information
      $this->mail->SMTPAuth   = true;                        // enable SMTP authentication
      $this->mail->SMTPSecure = "ssl";                      // sets the prefix to the servier
      $this->mail->Subject = 'From Amazone Server';
      $this->mail->Body    = 'From Amazone Server';
    }

    public function sendmail($receive_mail,$mail_host,$mail_port,$mail_username,$mail_password,$filepath,$filename){
      try{
            $this->mail->AddAddress($receive_mail, '收件人');

            /*客户端设置*/
            $this->mail->Host       = $mail_host;      // sets GMAIL as the SMTP server
            $this->mail->Port       = $mail_port;
            $this->mail->Username   = $mail_username;// GMAIL username
            $this->mail->Password   = $mail_password;            // GMAIL password
            $this->mail->AddReplyTo($mail_username, 'From Amazone Server');
            $this->mail->SetFrom($mail_username, 'From Amazone Server');
            $this->mail->AddAttachment(dirname(BASEPATH).'/'.$filepath,$filename);



            $this->mail->Send();
                echo "邮件已发送!</p>\n";

      } catch (phpmailerException $e) {
            echo $e->errorMessage(); //Pretty error messages from PHPMailer
      } catch (Exception $e) {
            echo $e->getMessage(); //Boring error messages from anything else!
      }
    }
}

/* End of file mailer.php */

压缩包放在\application\libraries\PHPMailerLib文件夹下,没有就新建



文件结构如下



控制控制器访问//自己传递参数即可,这个里面包含的变量我都打备注了
调用的是库里面的第一个function
你可以自己改function的

如果想要增加标题和内容项的话
就把这两个赋值写到function里就可以啊

      $this->mail->Subject = 'From Amazone Server';
      $this->mail->Body    = 'From Amazone Server';



控制控制器访问代码
      public function send(){
      $this->load->library('mailer');//调用

      $receive_mail = '';//接受邮件地址
      $mail_host = '';//发送邮件SMTP服务器
      $mail_port = '465';//SSL端口号
      $mail_username = '';//SMTP账号
      $mail_password = '';//SMTP密码
      $filepath = './upfile/7f270639248494f2838ea5d963fe9e7f.html';//附件地址
      $filename = '404.html';//附件名称
      $this->mailer->sendmail($receive_mail,$mail_host,$mail_port,$mail_username,$mail_password,$filepath,$filename);
      }

有啥问题可以在下面提出来呀

能帮的一定帮的
页: [1]
查看完整版本: 分享一个PHPMailer和CI配合的代码