/**
  * Send Queued email messages.
  * @param EmailHelper $emailHelper
  * @param null $count
  * @param bool $excludePausedCampaignMessages
  * @return bool
  * @throws NotSupportedException
  */
 public static function sendQueued(EmailHelper $emailHelper, $count = null, $excludePausedCampaignMessages = true)
 {
     assert('is_int($count) || $count == null');
     $outboxQueuedMessages = EmailMessageUtil::getOutboundQueuedMessages($count, $excludePausedCampaignMessages);
     foreach ($outboxQueuedMessages as $emailMessage) {
         $emailHelper->sendImmediately($emailMessage);
     }
     $outboxErrorQueuedMessages = EmailMessageUtil::getOutboundErrorQueuedMessages($count, count($outboxQueuedMessages));
     foreach ($outboxErrorQueuedMessages as $emailMessage) {
         if ($emailMessage->sendAttempts < 3) {
             $emailHelper->sendImmediately($emailMessage);
         } else {
             $emailHelper->processMessageAsFailure($emailMessage);
         }
     }
     return true;
 }