/** * @inheritdoc */ public function dispatchEvent(Swift_Events_EventObject $evt, $target) { parent::dispatchEvent($evt, $target); if ($evt->bubbleCancelled()) { return; } $eventName = $this->normalizeEventName($evt, $target); $this->eventDispatcher->trigger($eventName, ['swiftEventObject' => $evt]); }
/** * @param string $transport * @return Swift_Mailer * @throws TransportException */ public function spoolWithTransport($transport = '') { $spool = $this->spoolTransport; if ($spool === null) { throw new TransportException('Mailer spool is not configured.'); } $spoolRealTransport = $this->getTransport($transport); $this->eventDispatcher->attach(self::SPOOL_SEND_EVENT, 'send.swiftmailer.spooled', function () use($spoolRealTransport, $spool) { $failedRecipients = []; $spool->getSpool()->flushQueue($spoolRealTransport(), $failedRecipients); return $failedRecipients; }); return new Swift_Mailer($this->spoolTransport); }