/** * @param Event $event * @param array|CommandResult[] $results */ private function sendEmails(Event $event, array $results) { $mailParts = array(); foreach ($results as $commandResult) { $options = $commandResult->getOptions(); if (!$options['sendEmails']) { continue; } $mailRecipients = $options['mailRecipients']; if ($options['sendEmailAuthor']) { $mailRecipients[] = $event->getAuthor(); } $mailRecipients = array_unique($mailRecipients); if (empty($mailRecipients) || !is_array($commandResult->getOutput()) || count($commandResult->getOutput()) == 0) { continue; } foreach ($mailRecipients as $recipient) { if (!array_key_exists($recipient, $mailParts)) { $mailParts[$recipient] = array(); } $mailParts[$recipient][] = $commandResult; } } foreach ($mailParts as $mail => $parts) { $this->sendEmail($event, $mail, $this->options['sendEmailFrom'], $parts); } }