frontend\models\PasswordResetRequestForm::sendEmail PHP Method

sendEmail() public method

Sends an email with a link, for resetting the password.
public sendEmail ( ) : boolean
return boolean whether the email was send
    public function sendEmail()
    {
        /* @var $user User */
        $user = User::findOne(['status' => User::STATUS_ACTIVE, 'email' => $this->email]);
        if (!$user) {
            return false;
        }
        if (!User::isPasswordResetTokenValid($user->password_reset_token)) {
            $user->generatePasswordResetToken();
            if (!$user->save()) {
                return false;
            }
        }
        return Yii::$app->mailer->compose(['html' => 'passwordResetToken-html', 'text' => 'passwordResetToken-text'], ['user' => $user])->setFrom([Yii::$app->params['supportEmail'] => Yii::$app->name . ' robot'])->setTo($this->email)->setSubject('Password reset for ' . Yii::$app->name)->send();
    }

Usage Example

Example #1
0
 public function actionLogin()
 {
     if (!\Yii::$app->user->isGuest) {
         return $this->goHome();
     }
     $this->layout = 'login';
     $model = new LoginForm();
     $passResetModel = new PasswordResetRequestForm();
     if ($model->load(Yii::$app->request->post()) && $model->login()) {
         return $this->goBack();
     } else {
         if ($passResetModel->load(Yii::$app->request->post()) && $passResetModel->validate()) {
             /*Yii::$app->mailer->compose()
                  ->setFrom('*****@*****.**')
                  ->setTo('*****@*****.**')
                  ->setSubject('Email sent from Yii2-Swiftmailer')
             	 ->setTextBody('asdfasdasd')
                  ->send();*/
             if ($passResetModel->sendEmail()) {
                 Yii::$app->getSession()->setFlash('success', 'Check your email for further instructions.');
                 return $this->goHome();
             } else {
                 Yii::$app->getSession()->setFlash('error', 'Sorry, we are unable to reset password for email provided.');
                 return $this->goBack();
             }
         } else {
             return $this->render('login', ['model' => $model, 'passResetModel' => $passResetModel]);
         }
     }
 }
All Usage Examples Of frontend\models\PasswordResetRequestForm::sendEmail
PasswordResetRequestForm