private static final function sendItem(CommunicationItem $item)
 {
     if ($item->Sent) {
         Log::warning("Attempt blocked to send already sent email", "COMMS", ["CommunicationItemID" => $item->CommunicationItemID, "EmailProvider" => self::$emailProviderClassName]);
         return true;
     }
     $sendable = $item->getSendable();
     $providerClass = $sendable->getProviderClassName();
     $provider = self::getContainer()->getInstance($providerClass);
     if ($provider instanceof CaptureToCommunicationsProcessorInterface) {
         throw new InvalidProviderException();
     }
     try {
         $provider->send($sendable);
         $item->markSent();
     } catch (\Exception $exception) {
         $item->Status = CommunicationItem::STATUS_FAILED;
     }
     $item->markSent();
     $item->save();
     Log::debug("Sending communication by Email", "COMMS", ["CommunicationID" => $item->CommunicationID, "EmailProvider" => self::$emailProviderClassName]);
     return $item->Status == CommunicationItem::STATUS_SENT;
 }