如何在 Yii2 中修改重置密码电子邮件?主电子邮件没有重置令牌


How can i modify resetpassword email in Yii2 ? the main email does not have resettoken

   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;
}

}

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

根据 Yii 指南文档,按原样传递视图文件将导致 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;
}