Ejemplo n.º 1
0
 public function testLateFetch()
 {
     $mail = new Storage\Mbox(array('filename' => __DIR__ . '/_files/test.mbox/INBOX'));
     $message = new Message(array('handler' => $mail, 'id' => 5));
     $this->assertEquals($message->countParts(), 2);
     $this->assertEquals($message->countParts(), 2);
     $message = new Message(array('handler' => $mail, 'id' => 5));
     $this->assertEquals($message->subject, 'multipart');
     $message = new Message(array('handler' => $mail, 'id' => 5));
     $this->assertTrue(strpos($message->getContent(), 'multipart message') === 0);
 }
Ejemplo n.º 2
0
 protected function processBouncedMessage(\Zend\Mail\Message $message)
 {
     $content = $message->getContent();
     $isHard = false;
     if (preg_match('/permanent[ ]*[error|failure]/', $content)) {
         $isHard = true;
     }
     if (preg_match('/X-QueueItemId: [a-z0-9\\-]*/', $content, $m)) {
         $arr = preg_split('/X-QueueItemId: /', $m[0], -1, \PREG_SPLIT_NO_EMPTY);
         $queueItemId = $arr[0];
         if (!$queueItemId) {
             return;
         }
         $queueItem = $this->getEntityManager()->getEntity('EmailQueueItem', $queueItemId);
         if (!$queueItem) {
             return;
         }
         $massEmailId = $queueItem->get('massEmailId');
         $massEmail = $this->getEntityManager()->getEntity('MassEmail', $massEmailId);
         $campaignId = null;
         if ($massEmail) {
             $campaignId = $massEmail->get('campaignId');
         }
         $targetType = $queueItem->get('targetType');
         $targetId = $queueItem->get('targetId');
         $target = $this->getEntityManager()->getEntity($targetType, $targetId);
         $emailAddress = $queueItem->get('emailAddress');
         if ($isHard && $emailAddress) {
             $emailAddressEntity = $this->getEntityManager()->getRepository('EmailAddress')->getByAddress($emailAddress);
             $emailAddressEntity->set('invalid', true);
             $this->getEntityManager()->saveEntity($emailAddressEntity);
         }
         if ($campaignId && $target && $target->id) {
             $this->getCampaignService()->logBounced($campaignId, $queueItemId, $target, $emailAddress, $isHard);
         }
     }
 }