PHP

【PHP】PHPMailer发送邮件

小破孩
2022-06-21 / 0 评论 / 104 阅读 / 正在检测是否收录...
    /**
     * @Author:小破孩
     * @Time: 2020/7/10 13:13
     * @param $title   邮件标题
     * @param $content 内容
     * @param $toemail 收件人邮箱
     * @Description:发送邮件
     */
    function sendEmail($title, $content, $toemail, $usernumber, $type){
        try{
            $mail = new \PHPMailer\PHPMailer\PHPMailer();
            $mail->isSMTP();// 使用SMTP服务
            $mail->CharSet = "utf8";// 编码格式为utf8,不设置编码的话,中文会出现乱码
            $mail->Host = "smtp.163.com";// 发送方的SMTP服务器地址
            $mail->SMTPAuth = true;// 是否使用身份验证
            $mail->Username = Config('app.email_name');// 发送方的163邮箱用户名,就是你申请163的SMTP服务使用的163邮箱
            $mail->Password = Config('app.email_allow');// 发送方的邮箱密码,注意用163邮箱这里填写的是“客户端授权密码”而不是邮箱的登录密码!
            $mail->SMTPSecure = "ssl";// 使用ssl协议方式
            $mail->Port = config('app.email_port');// 163邮箱的ssl协议方式端口号是465/994
            $mail->setFrom(config('app.email_address'),config('app.email_sendpeopleinfo'));// 设置发件人信息,如邮件格式说明中的发件人,这里会显示为Mailer(xxxx@163.com),Mailer是当做名字显示
            $mail->addAddress($toemail,'小破孩回复消息');// 设置收件人信息,如邮件格式说明中的收件人,这里会显示为Liang(yyyy@163.com)
            $mail->addReplyTo(config('app.email_receive'),'小破孩');// 设置回复人信息,指的是收件人收到邮件后,如果要回复,回复邮件将发送到的邮箱地址
            $mail->Subject = $title;// 邮件标题
            $mail->Body = $content/*."点击可以查看文章地址:".$desc_url*/;// 邮件正文
            if(!$mail->send()){// 发送邮件
                returnResponse(100,$mail->ErrorInfo);// 输出错误信息 echo "Mailer Error: ".$mail->ErrorInfo;
            }
            //信息入库
            $data['e_user_number'] = $usernumber;
            $data['e_title']       = $title;
            $data['e_content']     = $content;
            $data['e_emali_receive'] = $toemail;
            $data['e_type']        = $type;
            $res = Db::name('email')->insert($data);
            if($res){
                return $res;
            }
        }catch (\Exception $e){
            returnResponse(100,$e->getMessage());
        }
    }
0

评论 (0)

取消