/** * @Extra\Route("/update/body/{id}", name="weaving_the_web_dashboard_debug_update_body") * @Extra\Template("WeavingTheWebDashboardBundle:Mail:Debug/update_body.html.twig") */ public function updateBodyAction(Message $message, Request $request) { /** @var \WeavingTheWeb\Bundle\MailBundle\Storage\GmailAwareImap $storage */ $storage = $this->get('weaving_the_web_mail.storage.imap'); $body = $storage->fetchBodyByUid($message->getHeader()->getImapUid()); $message->setHtmlBody($body); /** @var \WeavingTheWeb\Bundle\MailBundle\Parser\EmailParser $emailParser */ $emailParser = $this->get('weaving_the_web_mail.parser.email'); $emailParser->encodeMessageHTMLBody($message); $entityManager = $this->getDoctrine()->getManager(); $entityManager->persist($message); $entityManager->flush(); if ($request->query->get('referrer')) { $requestUri = urldecode($request->query->get('referrer')); return new RedirectResponse($request->getSchemeAndHttpHost() . $requestUri); } return ['message_id' => $message->getId()]; }
/** * @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); }