PHPMailer 的官方网站:https://phpmailer.worxware.com/
PHPMailer GitHub 下载地址:https://github.com/Synchro/PHPMailer
// 在会员记录插入到数据库之前 protected function _before_insert(&$data, $option) { $data['addtime'] = time(); // 注册的当前时间 // 生成验证email用的验证码,,uniqid()函数生成唯一验证id $data['email_code'] = md5(uniqid()); // 先把会员的密码加密 $data['password'] = md5($data['password'] . C('MD5_KEY')); }// 在会员注册成功之后 protected function _after_insert($data, $option) { // heredoc的语法 $content =<<<HTML <p>欢迎您成为本站会员,请点击以下链接地址完成email验证。</p> <p><a href="http://www.XXX.com/index.php/Home/Member/emailchk/code/{$data['email_code']}">点击完成验证</a></p> HTML; // 把生成的验证码发到会员的邮箱中 sendMail($data['email'], 'phpemail验证', $content); }
public function emailchk() { // 接收会员传回来的验证码 $code = I('get.code'); if($code) { // 把这个验证码到数据库中比较一下即可 $model = M('Member'); $email = $model->where(array('email_code'=>array('eq', $code)))->find(); if($email) { // 设置这个账号为已验证 $model->where(array('id'=>array('eq', $email['id'])))->setField('email_code', ''); $this->success('已经完成验证,现在可以去登录', U('login')); exit; } } }这是封装的sendMail()方法;
function sendMail($to, $title, $content) { require_once('./PHPMailer_v5.1/class.phpmailer.php'); $mail = new PHPMailer(); // 设置为要发邮件 $mail->IsSMTP(); // 是否允许发送HTML代码做为邮件的内容 $mail->IsHTML(TRUE); // 是否需要身份验证 $mail->SMTPAuth=TRUE; $mail->CharSet='UTF-8'; /* 邮件服务器上的账号是什么 ,在配置文件里面配置自己信息*/ $mail->From=C('MAIL_ADDRESS'); $mail->FromName=C('MAIL_FROM'); $mail->Host=C('MAIL_SMTP'); $mail->Username=C('MAIL_LOGINNAME'); $mail->Password=C('MAIL_PASSWORD'); // 发邮件端口号默认25 $mail->Port = 25; // 收件人 $mail->AddAddress($to); // 邮件标题 $mail->Subject=$title; // 邮件内容 $mail->Body=$content; return($mail->Send()); }