messagesLogger = new Swift_Plugins_MessageLogger(); $mailer->registerPlugin($this->messagesLogger); } public function collect() { $mails = array(); foreach ($this->messagesLogger->getMessages() as $msg) { $mails[] = array( 'to' => $this->formatTo($msg->getTo()), 'subject' => $msg->getSubject(), 'headers' => $msg->getHeaders()->toString() ); } return array( 'count' => count($mails), 'mails' => $mails ); } protected function formatTo($to) { if (!$to) { return ''; } $f = array(); foreach ($to as $k => $v) { $f[] = (empty($v) ? '' : "$v ") . "<$k>"; } return implode(', ', $f); } public function getName() { return 'swiftmailer_mails'; } public function getWidgets() { return array( 'emails' => array( 'icon' => 'inbox', 'widget' => 'PhpDebugBar.Widgets.MailsWidget', 'map' => 'swiftmailer_mails.mails', 'default' => '[]', 'title' => 'Mails' ), 'emails:badge' => array( 'map' => 'swiftmailer_mails.count', 'default' => 'null' ) ); } public function getAssets() { return array( 'css' => 'widgets/mails/widget.css', 'js' => 'widgets/mails/widget.js' ); } }