/** * Sends an email with a link, for resetting the password. * * @return boolean whether the email was send */ public function sendEmail() { /* @var $user User */ $user = \common\models\User::findOne(['status' => ['active', 'inactive'], 'email' => $this->email]); // \yii\helpers\VarDumper::dump($user); // die; $data = array(); $user->generatePasswordResetToken(); $userProfile = \common\models\UserProfile::findOne(['user_id' => $user->id]); if ($user->user_type == 'admin') { $resetLink = Yii::$app->urlManager->createAbsoluteUrl(['auth/login/reset-password', 'token' => $user->ud_temp_password]); $data['user'] = $userProfile->first_name . ' ' . $userProfile->last_name; } else { $resetLink = Yii::$app->urlManager->createAbsoluteUrl(['auth/login/reset-password', 'token' => $user->ud_temp_password]); $data['user'] = $userProfile->first_name . ' ' . $userProfile->last_name; } if ($user->save(false)) { $resetLink = $resetLink; $data['to'] = $user->email; $data['link'] = $resetLink; $data['request'] = "forget_password"; Utility::sendMail($data); return true; } return false; }
public static function sendMail($data) { $from = Utility::getConfig('admin_email'); $url = parse_url(\yii::$app->urlManager->getHostInfo()); $search = ['{copyright}' => '© ' . date('Y') . ' - ' . \yii::$app->urlManager->getHostInfo() . ' All rights reserved.', '{logo}' => \yii::getAlias('@base_url') . '/images/logo.jpg', '{domain_name}' => $url['host'], '{domain_url}' => \yii::$app->urlManager->getHostInfo()]; switch ($data['request']) { case "forget_password": $subject = "Reset Password Link"; $to = $data['to']; $link = $data['link']; $emailModel = EmailTemplate::getEmailTemplate('forget_password'); $emailContent = $emailModel->content; $search['{name}'] = ucwords($data['user']); $search['{link}'] = $data['link']; $emailContent = str_replace(array_keys($search), array_values($search), $emailContent); break; case "user_registration": $subject = "Registration"; $to = $data['to']; $link = $data['activationLink']; $emailModel = EmailTemplate::getEmailTemplate('user_registration'); $emailContent = $emailModel->content; $emailContent = str_replace('{name}', ucwords($data['user_name']), $emailContent); $emailContent = str_replace('{link}', $data['activationLink'], $emailContent); break; case "newsletter": $subject = $data['subject']; $to = $data['email']; $emailModel = EmailTemplate::getEmailTemplate('news_letter'); $emailContent = $emailModel->et_content; $emailContent = str_replace('{name}', $to, $emailContent); $emailContent = str_replace('{message}', $data['message'], $emailContent); break; default: echo "default case"; } \Yii::$app->mail->compose()->setFrom($from)->setTo($to)->setSubject($subject)->setHtmlBody($emailContent)->send(); return true; }