diff --git a/apps/advanced/common/config/params.php b/apps/advanced/common/config/params.php index dd01b75..c378364 100644 --- a/apps/advanced/common/config/params.php +++ b/apps/advanced/common/config/params.php @@ -15,6 +15,7 @@ return [ 'components.mail' => [ 'class' => 'yii\swiftmailer\Mailer', + 'viewPath' => '@common/mails', ], 'components.db' => [ diff --git a/apps/advanced/frontend/views/emails/passwordResetToken.php b/apps/advanced/common/mails/passwordResetToken.php similarity index 100% rename from apps/advanced/frontend/views/emails/passwordResetToken.php rename to apps/advanced/common/mails/passwordResetToken.php diff --git a/apps/advanced/frontend/controllers/SiteController.php b/apps/advanced/frontend/controllers/SiteController.php index 184d16c..d617d7e 100644 --- a/apps/advanced/frontend/controllers/SiteController.php +++ b/apps/advanced/frontend/controllers/SiteController.php @@ -159,17 +159,11 @@ class SiteController extends Controller $user->password_reset_token = Security::generateRandomKey(); if ($user->save(false)) { - // todo: refactor it with mail component. pay attention to the arrangement of mail view files - $fromEmail = \Yii::$app->params['supportEmail']; - $name = '=?UTF-8?B?' . base64_encode(\Yii::$app->name . ' robot') . '?='; - $subject = '=?UTF-8?B?' . base64_encode('Password reset for ' . \Yii::$app->name) . '?='; - $body = $this->renderPartial('/emails/passwordResetToken', [ - 'user' => $user, - ]); - $headers = "From: $name <{$fromEmail}>\r\n" . - "MIME-Version: 1.0\r\n" . - "Content-type: text/plain; charset=UTF-8"; - return mail($email, $subject, $body, $headers); + return \Yii::$app->mail->compose('passwordResetToken', ['user' => $user]) + ->from([\Yii::$app->params['supportEmail'] => \Yii::$app->name . ' robot']) + ->to($email) + ->subject('Password reset for ' . \Yii::$app->name) + ->send(); } return false;