/** * 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; }