本文主要是介绍PHPmailer、CI框架发送邮件,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
一、CI框架
CI框架有一个专门的email类,用的时候加载进来即可
<?phpclass Mail{public function sendMail(){$this->load->library('email'); $config = array();$config['protocol'] = 'SMTP'; //邮件协议$config['smtp_host'] = 'ssl://smtp.gmail.com';$config['smtp_user'] = 'youremail@gmail.com';$config['smtp_pass'] = 'yourpassword'; //注意这个不是邮箱登陆密码,是SMTP授权码$config['smtp_port'] = '465';$config['charset'] = 'utf-8';$config['mailtype'] = 'html';$config['smtp_timeout'] = '5';$config['newline'] = "\r\n";$config['wordwrap'] = TRUE; // 自动换行$this->email->initialize($config);$this->email->from ('from@email.com', 'From email name');$this->email->to ('to@email.com', 'To email name');$this->email->cc ('cc@email.com'); //抄送$this->email->bcc ('bcc@email.com'); //秘密抄送$this->email->subject ('Test subject');$this->email->message ('The content'); //内容$this->email->attach('application\controllers\1.jpeg'); //附件,相对于index.php的路径$this->email->send ();}}?>
二、PHPmailer发送邮件
首先下载最新版的PHPmailer,下载地址:http://code.google.com/a/apache-extras.org/p/phpmailer/downloads/list。
把class.phpmailer.php 和 class.smtp.php引入。当然可以对这俩文件重命名。
<?phpnamespace app\common\logic;class EmailLogic{function sendMail(){import('Org.Util.PHPMailer.phpmailer');import('Org.Util.PHPMailer.smtp');//实例化PHPMailer核心类$mail = new \PHPMailer();$mail->IsSMTP();//采用smtp服务器发送邮件//是否启用smtp的debug进行调试 开发环境建议开启 生产环境注释掉即可 默认关闭debug调试模式$mail->SMTPDebug = 1;//使用smtp鉴权方式发送邮件$mail->isSMTP();//smtp需要鉴权 这个必须是true$mail->SMTPAuth=false;//链接qq域名邮箱的服务器地址$mail->Host = 'smtp.qq.com';//设置使用ssl加密方式登录鉴权$mail->SMTPSecure = 'ssl';//设置ssl连接smtp服务器的远程服务器端口号,以前的默认是25,但是现在新的好像已经不可用了 可选465或587$mail->Port = 465;//设置发件人的主机域 可有可无 默认为localhost 内容任意,建议使用你的域名$mail->Hostname = 'localhost';//设置发送的邮件的编码 可选GB2312 我喜欢utf-8 据说utf8在某些客户端收信下会乱码$mail->CharSet = 'UTF-8';//设置发件人姓名(昵称) 任意内容,显示在收件人邮件的发件人邮箱地址前的发件人姓名$mail->FromName = '报价系统通知';//smtp登录的账号 这里填入字符串格式的qq号即可$mail->Username ='';//smtp登录的密码 使用生成的授权码 你的最新的授权码$mail->Password = '';//设置发件人邮箱地址 这里填入上述提到的“发件人邮箱”$mail->From = 'ideal@51job.com';$mail->From = 'notice@51job.com';//为该邮件添加附件 该方法也有两个参数 第一个参数为附件存放的目录(相对目录、或绝对目录均可) 第二参数为在邮件附件中该附件的名称$filePath = ROOT_PATH .'clientInfo.xlsx';if (is_file($filePath)) {$mail->AddAttachment($filePath,'clientInfo.xlsx');}//同样该方法可以多次调用 上传多个附件// $mail->addAttachment('./Jlib-1.1.0.js','Jlib.js');//邮件正文是否为html编码 注意此处是一个方法 不再是属性 true或false$mail->isHTML(true);//设置收件人邮箱地址 该方法有两个参数 第一个参数为收件人邮箱地址 第二参数为给该地址设置的昵称 不同的邮箱系统会自动进行处理变动 这里第二个参数的意义不大$mail->addAddress($to,'报价通知');//抄送给ideal$mail->addCC('ideal@51job.com');//添加多个收件人 则多次调用方法即可// $mail->addAddress('xxx@qq.com','lsgo在线通知');//添加该邮件的主题$mail->Subject = $title;//添加邮件正文 上方将isHTML设置成了true,则可以是完整的html字符串 如:使用file_get_contents函数读取本地的html文件$mail->Body = $content;$status = $mail->send();//简单的判断与提示信息if($status) {return true;}else{return false;}}}
?>
如果是内部服务器已经做了免登录,可以把仅仅保留 $mail->IsSMTP();,其他SMTP相关的注释掉即可。
这篇关于PHPmailer、CI框架发送邮件的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!