/** * @Extra\Route("/show/body/{id}", name="weaving_the_web_dashboard_debug_show_body") * @Extra\Template("WeavingTheWebDashboardBundle:Mail:Debug/show_body.html.twig") */ public function showBodyAction(Message $message) { /** @var \WeavingTheWeb\Bundle\MailBundle\Storage\GmailAwareImap $storage */ $storage = $this->get('weaving_the_web_mail.storage.imap'); $body = $storage->fetchBodyByUid($message->getHeader()->getImapUid()); return ['message_id' => $message->getId(), 'message' => json_encode(['body' => base64_encode($body)], JSON_PRETTY_PRINT)]; }
/** * @Extra\Route( * "/move-to-spam/{id}", * name="weaving_the_web_dashboard_mail_move_to_spam", * requirements={"id" = "\d+"}, * ) * @Extra\Method({"POST"}) * * @param Message $message * @return Response */ public function moveToSpam(Message $message) { $message->reportAsSpam(); /** @var \Doctrine\ORM\EntityManager $entityManager */ $entityManager = $this->getDoctrine()->getManager(); /** @var \WeavingTheWeb\Bundle\MailBundle\Storage\GmailAwareImap $storage */ $storage = $this->get('weaving_the_web_mail.storage.imap'); try { $storage->moveToSpam($message->getHeader()->getImapUid()); } catch (InvalidSequenceNumber $exception) { $message->setSequenceNumberUnavailable(true); $message->reportAsSpam(true); $this->get('logger')->error($exception->getMessage()); } catch (\Exception $exception) { return new Response(sprintf('Could not move message with id #%d to spam', $message->getId()), 400); } $entityManager->persist($message); $entityManager->flush(); $collapsedMailsUrl = $this->generateUrl('weaving_the_web_dashboard_mail_show_collapsed_mails'); return new RedirectResponse($collapsedMailsUrl); }