/** * @dataProvider dataProviderTestParser */ public function testParser($expectedBounce, $expectedAuthCode, $message, $filename) { $emailSource = file_get_contents($filename); $parser = new EmailParser(); $parser->parse($emailSource); $this->assertSame($expectedBounce, $parser->getBounceLevel(), 'Bounce level should be ' . var_export($expectedBounce, true) . ' for ' . $message); $this->assertSame($expectedAuthCode, $parser->getAuthCode(), 'AuthCode should be ' . var_export($expectedAuthCode, true) . ' for ' . $message); }
/** * Attempt to find the email in database which were bounced * @global \TYPO3\CMS\Core\Database\DatabaseConnection $TYPO3_DB */ protected function findEmail() { global $TYPO3_DB; $this->email = null; $this->recipientList = null; $authCode = $this->emailParser->getAuthCode(); if ($authCode) { // Find the recipientList and email UIDs according to authcode $rs = $TYPO3_DB->sql_query("\n\t\t\tSELECT tx_newsletter_domain_model_newsletter.recipient_list, tx_newsletter_domain_model_email.uid\n\t\t\tFROM tx_newsletter_domain_model_email\n\t\t\tINNER JOIN tx_newsletter_domain_model_newsletter ON (tx_newsletter_domain_model_email.newsletter = tx_newsletter_domain_model_newsletter.uid)\n\t\t\tINNER JOIN tx_newsletter_domain_model_recipientlist ON (tx_newsletter_domain_model_newsletter.recipient_list = tx_newsletter_domain_model_recipientlist.uid)\n\t\t\tWHERE tx_newsletter_domain_model_email.auth_code = '{$authCode}' AND recipient_list IS NOT NULL\n\t\t\tLIMIT 1"); if (list($recipientListUid, $emailUid) = $TYPO3_DB->sql_fetch_row($rs)) { $emailRepository = $this->objectManager->get(\Ecodev\Newsletter\Domain\Repository\EmailRepository::class); $this->email = $emailRepository->findByUid($emailUid); $recipientListRepository = $this->objectManager->get(\Ecodev\Newsletter\Domain\Repository\RecipientListRepository::class); $this->recipientList = $recipientListRepository->findByUid($recipientListUid); } } }