How to Make Forgot Password in Codeigniter, Password link send in email : Hello guyz i created little application in codeigniter,in this application i am doing forgot password module, i had doing function but dont know its not working,
i need forgot password like random password send in email, but email method does not work, so give me some suggestion.


Here is My view:

    <form action="<?php echo base_url() . "welcome/forgotpassword" ?>" method="POST">

                <div class="form-group has-feedback">
                        <input type="email" class="form-control" placeholder="Email" name="user_email" />
                        <span class="glyphicon glyphicon-envelope form-control-feedback"></span>
                 </div>
                  <div class="row">
                  <div class="col-xs-4">
                         <input type="submit"  class="btn btn-primary btn-block btn-flat"  value="Send">

                  </div>
                 </div>
        </form>


Here is my Controller:

    public function forgotpassword(){
        
        $email = $this->input->post('user_email');
        $findemail = $this->main_model->ForgotPassword($email);
        $this->load->view('forgotpassword');
        if ($findemail) {
            $this->main_model->sendpassword($findemail);
        } else {
            
              $this->session->set_flashdata('msg', 'Email not found!');
           
        }
    }

Here is My model:

     public function sendpassword($data) {
        $email = $data['user_email'];
        print_r($data);
        $query1 = $this->db->query("SELECT *  from user_registration where user_email = '" . $email . "'");
        $row = $query1->result_array();
        print_r($email);

        if ($query1->num_rows() > 0) {

            $passwordplain = "";
            $passwordplain = rand(999999999, 9999999999);
            $newpass['user_password'] = md5($passwordplain);
            $this->db->where('user_email', $email);
            $this->db->update('user_registration', $newpass);
            $mail_message = 'Dear ' . $row[0]['full_name'] . ',' . "\r\n";
            $mail_message .= 'Thanks for contacting regarding to forgot password,<br> Your <b>Password</b> is <b>' . $passwordplain . '</b>' . "\r\n";
            $mail_message .= '<br>Please Update your password.';
            $mail_message .= '<br>Thanks & Regards';
            $mail_message .= '<br>Your company name';
            require FCPATH . 'assets/PHPMailer/PHPMailerAutoload.php';
            $mail = new PHPMailer;
            $mail->isSMTP();
            $mail->SMTPSecure = "tls";
            $mail->Debugoutput = 'html';
            $mail->Host = "ssl://smtp.googlemail.com";
            $mail->Port = 465;
            $mail->SMTPAuth = true;
            $mail->Username = "xxxxxxxxx@gmail.com";
            $mail->Password = "xxxxxxxx";
            $mail->setFrom('xxxxxxx@gmail.com', 'admin');
            $mail->IsHTML(true);
            $mail->addAddress('user_email', $email);
            $mail->Subject = 'OTP from company';
            $mail->Body = $mail_message;
            $mail->AltBody = $mail_message;

            if ($mail->send()) {

                echo '<script>alert("Message Send")</script>';
                $this->session->set_flashdata('msg', 'Failed to send password, please try again!');
            } else {
                echo '<script>alert("Sending Failed")</script>';
                echo $this->email->print_debugger();
                $this->session->set_flashdata('msg', 'Password sent to your email!');
            }
            
        }
    }