PHPMailer发送邮件

 

1、下载地址:https://github.com/PHPMailer/PHPMailer/ 

2、查看php.ini中extension=php_openssl.dll确保扩展是开启的状态

3、发送人邮箱开始smtp服务,获取授权码

input->post('email');
        $code = rand(100000,999999);
        // 实例化PHPMailer核心类
        //$mail = new PHPMailer();
        $mail = new \PHPMailer\PHPMailer\PHPMailer();
        try {
            // 是否启用smtp的debug进行调试 开发环境建议开启 生产环境注释掉即可 默认关闭debug调试模式
            $mail->SMTPDebug = 1;
            // 使用smtp鉴权方式发送邮件
            $mail->isSMTP();
            // smtp需要鉴权 这个必须是true
            $mail->SMTPAuth = true;
            // 链接qq域名邮箱的服务器地址
            $mail->Host = 'smtp.163.com';
            // 设置使用ssl加密方式登录鉴权
            $mail->SMTPSecure = 'ssl';
            // 设置ssl连接smtp服务器的远程服务器端口号
            $mail->Port = 465;
            // 设置发送的邮件的编码
            $mail->CharSet = 'UTF-8';
            // 设置发件人昵称 显示在收件人邮件的发件人邮箱地址前的发件人姓名
            $mail->FromName = '翼优选';
            // smtp登录的账号 QQ邮箱即可
            $mail->Username = '发送人邮箱';
            // smtp登录的密码 使用生成的授权码,阿里邮箱的密码就是授权码
            $mail->Password = '发送人邮箱授权码';
            // 设置发件人邮箱地址 同登录账号
            $mail->From = '发送人邮箱';
            // 邮件正文是否为html编码 注意此处是一个方法
            $mail->isHTML(true);
//            $mail->addReplyTo('[email protected]', 'info'); //回复的时候回复给哪个邮箱 建议和发件人一致
            // 设置收件人邮箱地址
            $mail->addAddress($sEmail);
//            $mail->addAddress('[email protected]');//多个邮箱

            // 添加该邮件的主题
            $mail->Subject = 'xxxxx';
            // 添加邮件正文
            $mail->Body = '邮箱验证码:'.$code.",5分钟内有效";
//            $mail->AltBody = '222222';
            // 为该邮件添加附件
//            $mail->addAttachment('./example.pdf');

            // 发送邮件 返回状态
            $status = $mail->send();
            if($status){
                $this->redis->Set($sEmail,$code);
                $this->redis->EXPIRE($sEmail,5*60);
                $arrHint = array('nStatus'=>0,'sMsg'=>'发送成功');
                return  $this->output->set_content_type('application/json')->set_output(json_encode($arrHint));
            }

        }catch (Exception $e) {
            $arrHint = array('nStatus'=>1,'sMsg'=>'发送失败','error'=>$mail->ErrorInfo);
            return  $this->output->set_content_type('application/json')->set_output(json_encode($arrHint));
        }
    }

}

注:基于CI框架

你可能感兴趣的:(php)