public function actionPendingMails()
 {
     // verify if are emails pending to send
     $emails = Emails::model()->findAll(array('condition' => 't.email_status = 0', 'limit' => Yii::app()->params['mailSendMultiples']));
     if (count($emails) > 0) {
         foreach ($emails as $email) {
             Yii::import('application.extensions.phpMailer.yiiPhpMailer');
             $mailer = new yiiPhpMailer();
             if ($mailer->Ready($email->email_subject, $email->email_body, array('email' => $email->email_toMail, 'name' => $email->email_toName), $email->email_priority)) {
                 $email->email_status = 1;
                 $email->email_sentDate = date("Y-m-d G:i:s");
                 $email->save(false);
             }
         }
     }
 }
 public function actionRecover()
 {
     // create ForgottenPasswordForm object
     $model = new ForgottenPasswordForm();
     // verify if ForgottenPasswordForm was used
     if (isset($_POST['ForgottenPasswordForm'])) {
         $model->attributes = $_POST['ForgottenPasswordForm'];
         // validate model
         if ($model->validate()) {
             // criteria object used to find all user data information
             $userCriteria = new CDbCriteria();
             $userCriteria->condition = "user_email = :user_email";
             $userCriteria->params = array(':user_email' => $model->user_email);
             $CountUser = Users::model()->count($userCriteria);
             $transaction = Yii::app()->db->beginTransaction();
             if ($CountUser > 0) {
                 $user = Users::model()->find($userCriteria);
                 // -- Password Generator
                 $vowels = 'aeiou';
                 $consonants = 'bcdfghjklmnpqrstvwxyz';
                 $password = '';
                 $alt = time() % 2;
                 for ($i = 0; $i < 10; $i++) {
                     if ($alt == 1) {
                         $password .= $consonants[rand() % strlen($consonants)];
                         $alt = 0;
                     } else {
                         $password .= $vowels[rand() % strlen($vowels)];
                         $alt = 1;
                     }
                 }
                 $user->user_password = md5($password);
                 if ($user->save(false)) {
                     $str = $this->renderPartial('//templates/users/PasswordChanged', array('userRequest' => $user->CompleteName, 'user_email' => $user->user_email, 'user_password' => $password, 'applicationName' => Yii::app()->name, 'applicationUrl' => "http://" . $_SERVER['SERVER_NAME'] . Yii::app()->request->baseUrl), true);
                     $subject = Yii::t('email', 'PasswordReset');
                     Yii::import('application.extensions.phpMailer.yiiPhpMailer');
                     $mailer = new yiiPhpMailer();
                     $mailer->Ready($subject, $str, array('name' => $user->CompleteName, 'email' => $user->user_email), Emails::PRIORITY_NORMAL);
                     Yii::app()->user->setFlash('PasswordSuccessChanged', Yii::t('site', 'PasswordSuccessChanged'));
                     $this->refresh();
                 } else {
                     throw new CException('Error #000001');
                 }
             } else {
                 throw new CException(Yii::t('site', 'EmailNotExist'));
             }
         }
     }
     $this->layout = 'login';
     $this->render('recover', array('model' => $model));
 }
예제 #3
0
 private function sendEmailAlert($attributes)
 {
     $recipients = Users::model()->with('Companies.Projects')->findAll(array('condition' => 'Projects.project_id = ' . $attributes['project_id'], 'together' => true));
     $recipientsList = array();
     foreach ($recipients as $user) {
         array_push($recipientsList, $user->user_email);
     }
     $str;
     Yii::import('application.extensions.miniTemplator.miniTemplator');
     $t = new miniTemplator();
     $t->readTemplateFromFile("templates/ActivityCreation.tpl");
     $t->setVariable("applicationName", Yii::app()->name);
     $t->setVariable("project", Projects::model()->findByPk($attributes['project_id'])->project_name);
     $t->setVariable("logActivity", $attributes['log_activity']);
     $t->setVariable("activityCreatedByUser", Users::model()->findByPk($attributes['user_id'])->CompleteName);
     $t->setVariable("date", $attributes['log_date']);
     $t->setVariable("applicationUrl", "http://" . $_SERVER['SERVER_NAME'] . Yii::app()->request->baseUrl);
     $t->generateOutputToString($str);
     $subject = "Activity Notification";
     Yii::import('application.extensions.phpMailer.yiiPhpMailer');
     $mailer = new yiiPhpMailer();
     $mailer->Ready($subject, $str, $recipientsList);
 }