如何在Yii2中修改resetpassword电子邮件?主电子邮件没有resettoken

时间:2015-02-25 16:04:20

标签: php email yii2

   public function sendEmail()
{
    /* @var $Users Users */
    $Users = Users::findOne(['username' => $this->username]);

    if ($Users){
        if (!Users::isPasswordResetTokenValid($Users->password_reset_token)) {
            $Users->generatePasswordResetToken();
        }
        if ($Users->save()){
            return \Yii::$app->mailer->compose('passwordResetToken', ['Users' => $Users])
                ->setFrom([\Yii::$app->params['supportEmail'] => \Yii::$app->name . ' noreply'])
                ->setTo($this->username)
                ->setSubject('Password reset for' . \Yii::$app->name)
                ->send();
        }
    }
    return false;
}

}

这是我发送重置令牌的功能,但电子邮件中没有重置令牌,

1 个答案:

答案 0 :(得分:0)

根据Yii guide documents,传递视图文件将导致应用php函数strip_tags()。这也将从文件中删除任何php标签以及html标签。

我认为您可能需要将视图文件作为passwordResetToken-html传递。

所以你的功能看起来像这样:

    public function sendEmail()
{
    /* @var $Users Users */
    $Users = Users::findOne(['username' => $this->username]);

    if ($Users){
        if (!Users::isPasswordResetTokenValid($Users->password_reset_token)) {
            $Users->generatePasswordResetToken();
        }
        if ($Users->save()){
            return \Yii::$app->mailer->compose('passwordResetToken-html', ['Users' => $Users])
                ->setFrom([\Yii::$app->params['supportEmail'] => \Yii::$app->name . ' noreply'])
                ->setTo($this->username)
                ->setSubject('Password reset for' . \Yii::$app->name)
                ->send();
        }
    }
    return false;
}