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;
}
}
这是我发送重置令牌的功能,但电子邮件中没有重置令牌,
答案 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;
}