getQueryParam('id'); if (!$id || !is_string($id)) { throw new BadRequest(); } $queueItemId = $id; /** @var ?EmailQueueItem $queueItem */ $queueItem = $this->entityManager->getEntity(EmailQueueItem::ENTITY_TYPE, $queueItemId); if (!$queueItem) { throw new NotFound(); } $targetType = $queueItem->getTargetType(); $targetId = $queueItem->getTargetId(); $target = $this->entityManager->getEntityById($targetType, $targetId); if (!$target) { return; } $massEmailId = $queueItem->getMassEmailId(); if (!$massEmailId) { return; } /** @var ?MassEmail $massEmail */ $massEmail = $this->entityManager->getEntityById(MassEmail::ENTITY_TYPE, $massEmailId); if (!$massEmail) { return; } $campaignId = $massEmail->getCampaignId(); if (!$campaignId) { return; } $campaign = $this->entityManager->getEntityById(Campaign::ENTITY_TYPE, $campaignId); if (!$campaign) { return; } $this->service->logOpened($campaignId, $queueItem); header('Content-Type: image/png'); $img = imagecreatetruecolor(1, 1); if (!$img) { return; } imagesavealpha($img, true); $color = imagecolorallocatealpha($img, 127, 127, 127, 127); if ($color === false) { return; } imagefill($img, 0, 0, $color); imagepng($img); imagecolordeallocate($img, $color); imagedestroy($img); } }