/**
  * Sends a message.
  * If the list of recipients contains a group, the message is duplicated for each member.
  *
  *
  * @param class_module_messaging_message $objMessage
  * @param class_module_user_group[]|class_module_user_user[]|class_module_user_group|class_module_user_user $arrRecipients
  *
  * @return bool
  */
 public function sendMessageObject(class_module_messaging_message $objMessage, $arrRecipients)
 {
     $objValidator = new class_email_validator();
     if ($arrRecipients instanceof class_module_user_group || $arrRecipients instanceof class_module_user_user) {
         $arrRecipients = array($arrRecipients);
     }
     $arrRecipients = $this->getRecipientsFromArray($arrRecipients);
     foreach ($arrRecipients as $objOneUser) {
         //skip inactive users
         if ($objOneUser->getIntActive() != 1) {
             continue;
         }
         $objConfig = class_module_messaging_config::getConfigForUserAndProvider($objOneUser->getSystemid(), $objMessage->getObjMessageProvider());
         if ($objConfig->getBitEnabled()) {
             //clone the message
             $objCurrentMessage = new class_module_messaging_message();
             $objCurrentMessage->setStrTitle($objMessage->getStrTitle());
             $objCurrentMessage->setStrBody($objMessage->getStrBody());
             $objCurrentMessage->setStrUser($objOneUser->getSystemid());
             $objCurrentMessage->setStrInternalIdentifier($objMessage->getStrInternalIdentifier());
             $objCurrentMessage->setStrMessageProvider($objMessage->getStrMessageProvider());
             $objCurrentMessage->setStrMessageRefId($objMessage->getStrMessageRefId());
             $objCurrentMessage->setStrSenderId(validateSystemid($objMessage->getStrSenderId()) ? $objMessage->getStrSenderId() : class_carrier::getInstance()->getObjSession()->getUserID());
             $objCurrentMessage->updateObjectToDb();
             if ($objConfig->getBitBymail() && $objValidator->validate($objOneUser->getStrEmail())) {
                 $this->sendMessageByMail($objCurrentMessage, $objOneUser);
             }
         }
     }
 }