Ejemplo n.º 1
0
 public function actionFeedback()
 {
     if (isset($_POST)) {
         //send e-mail to administrator
         Yii::app()->mailer->AddAddress(Yii::app()->params['adminEmail']);
         Yii::app()->mailer->Subject = 'Feedback Wiz';
         $note = $_POST['note'];
         if (empty($note)) {
             $note = "No notes posted.";
         }
         $content = "<table cellspacing=\"10px\" cellpadding=\"10px\"><tr><td style=\"font-weight:bold\" align=\"right\">User Agent</td><td>" . Yii::app()->browser->getUserAgent() . "</td><tr><td style=\"font-weight:bold\" align=\"right\">User Note</td><td style=\"font-style:italic\">" . $note . "</td></tr>";
         try {
             $filename = Yii::app()->basePath . '/../screenshot/' . $_POST['screenshot'] . '.png';
             if (file_exists($filename)) {
                 Yii::app()->mailer->AddAttach($filename);
             }
             Yii::app()->mailer->MsgHTML($content);
             $result = Yii::app()->mailer->Send($content);
         } catch (Exception $e) {
             //logs send failure
             $result = 'error';
             $logs = new SendmailLogs();
             $logs->attributes = array('mail_type' => 'feedback', 'mail_identifier' => 0, 'error_code' => $e->getCode(), 'error_message' => $e->getMessage(), 'address' => Yii::app()->params['adminEmail']);
             $logs->save();
         }
         echo $result;
     }
 }
Ejemplo n.º 2
0
 /**
  * Sends an email to users who want to receive a notification
  * if their role corresponds to that associated with the notification.
  */
 public function afterSave()
 {
     //checks if send_mail==true and if the variable Yii::app()->params['block_email'] is set to true to inhibit the delivery of mail
     if ($this->send_mail && !Yii::app()->params['block_email']) {
         $mail_identifier = $this->primaryKey;
         if ($this->category->role_name == 'owner') {
             $users = Users::model()->findAll('username=:username', array(':username' => $this->owner));
         } else {
             $users = Users::model()->findAll('role_name=:role_name', array(':role_name' => $this->category->role_name));
         }
         $send = false;
         $recipients = null;
         foreach ($users as $user) {
             $settings = Settings::model()->findByPk(array('username' => $user->username, 'notification_category_ptr' => $this->notification_category_ptr));
             if ($settings == NULL) {
                 //note: if settings is null the email sendign is enable!
                 Yii::app()->mailer->AddAddress($user->email);
                 $recipients .= $user->email . ",";
                 $send = true;
             }
         }
         if ($send || Yii::app()->params['debug_email']) {
             //checks if email debugging is active
             if (Yii::app()->params['debug_email']) {
                 $this->mail_subject = "[ WIZ DEBUG EMAIL ] " . $this->mail_subject;
                 $this->mail_body = "[ REAL RECIPIENTS ] => [ " . $recipients . " ]<br/><br/> " . $this->mail_body;
                 Yii::app()->mailer->ClearAddresses();
                 Yii::app()->mailer->AddAddress(Yii::app()->params['debugEmail']);
             }
             try {
                 Yii::app()->mailer->Subject = $this->mail_subject;
                 $footer_text = 'THIS IS AN AUTOMATIC MESSAGE, PLEASE DO NOT RESPOND';
                 $wiz_logo = 'wizlogo.png';
                 $tree_logo = 'ambiente_logo.gif';
                 $html_msg = '<html>' . ' <head></head>' . ' <body>' . '  <table style="width: 100%; border-bottom: solid 2px #006AB2;">' . '   <tr>' . '    <td align="left"> <img src="' . Yii::app()->getBaseUrl(true) . '/images/' . $wiz_logo . '" height="70" width="74"/></td>' . '   </tr>' . '  </table>' . '  <br/>' . '  <table style="width: 100%; border-bottom: solid 2px #006AB2;">' . '   <tr>' . '    <td align="left"> ' . $this->mail_body . '</td>' . '   </tr>' . '   <tr>' . '    <td align="left"> &nbsp; </td>' . '   </tr>' . '  </table>' . '  <table style="width: 100%;">' . '   <tr>' . '    <td align="left"> <img src="' . Yii::app()->getBaseUrl(true) . '/images/' . $tree_logo . '" height="86" width="286"/></td>' . '   </tr>' . '   <tr>' . '    <td align="left"> ' . $footer_text . '</td>' . '   </tr>' . '  </table>' . ' </body>' . '</html>';
                 Yii::app()->mailer->MsgHTML($html_msg);
                 Yii::app()->mailer->Send();
             } catch (Exception $e) {
                 //logs send failure
                 $logs = new SendmailLogs();
                 $logs->attributes = array('mail_type' => 'notifications', 'mail_identifier' => $mail_identifier, 'error_code' => $e->getCode(), 'error_message' => $e->getMessage(), 'address' => $user->email);
                 $logs->save();
             }
         }
     }
 }