getEntityManager()->getEntity('EmailQueueItem', $queueItemId); if (!$queueItem) { throw new NotFound(); } $target = null; $campaign = null; $targetType = $queueItem->get('targetType'); $targetId = $queueItem->get('targetId'); if ($targetType && $targetId) { $target = $this->getEntityManager()->getEntity($targetType, $targetId); } $massEmailId = $queueItem->get('massEmailId'); if (!$massEmailId) return; $massEmail = $this->getEntityManager()->getEntity('MassEmail', $massEmailId); if (!$massEmail) return; $campaignId = $massEmail->get('campaignId'); if (!$campaignId) return; $campaign = $this->getEntityManager()->getEntity('Campaign', $campaignId); if (!$campaign) return; if (!$target) { return; } $campaignService = $this->getServiceFactory()->create('Campaign'); $campaignService->logOpened($campaignId, $queueItemId, $target); } }