Partage
  • Partager sur Facebook
  • Partager sur Twitter

Symfony créer une newsletter

Sujet résolu
    22 juillet 2018 à 0:31:38

    Bonjour ma question est la suivantes comment créer une newsletter ? je veux envoyer des email a chaque fois que j'ajoute un articles 

    sauf que des fois j'ai des articles programmer genre qui devraient apparaître demain 

    exemple j'écris un article aujourd'hui je l'ajoute en bdd mais je veux le publier demain comment faire pour envoyer l'email demain au lieu d'aujourd'hui ? 

    ça c'est mon code pour ajouter un article ils envoie a tout les utilisateurs inscrit un mail comme quoi un article a étais publier 

    /**
         * @Route("/ajout", methods="GET|POST")
         * @param  Request $request
         * @return Response
         * @throws \Exception
         */
    
         public function add(Request $request, \Swift_Mailer $mailer): Response {
    
            $info = $this->getDoctrine()->getRepository(InfoMore::class)->findByInfo(2);
    
            $article = new Articles();
            $addArticle = $this->createForm(ArticlesType::class, $article);
            $addArticle->handleRequest($request);
    
             $emails = [];
             $users = $this->getDoctrine()->getRepository(User::class)->findAll();
    
             foreach ($users as $user) {
                 $emails[$user->getEmail()] = $user->getUsername();
             }
    
            if($addArticle->isSubmitted() && $addArticle->isValid()) {
    
                $article = $addArticle->getData();
                $manager = $this->getDoctrine()->getManager();
                $manager->persist($article);
                $manager->flush();
    
                $message = (new \Swift_Message('Un nouvelles articles est publier'))
                    ->setFrom('contact@al-houria.com')
                    ->setBcc($emails)
                    ->setBody(
                        $this->renderView(
                            'email/article_publish.html.twig'
                        ),
                        'text/html'
                    )
                ;
                $mailer->send($message);
    
                $this->addFlash('article', 'L\'article a bien été ajouté');
                return $this->redirectToRoute('app_backoffice_admin');
            }
    
            return $this->render('backOffice/CRUD/add.html.twig', [
                'title' => 'Ajouter un article a votre blog',
                'info' => $info,
                'addArticle' => $addArticle->createView()
            ]);
    
         }

    Merci de votre aide si vous avez des proposition je suis preneurs  

    • Partager sur Facebook
    • Partager sur Twitter
      22 juillet 2018 à 0:35:09

      Hello,

      Je ne connais pas symfony, mais une idée comme ça : un script exécuté régulièrement avec cron 

      • Partager sur Facebook
      • Partager sur Twitter
      Google répond à tout, PHP Manual sait (presque) tout, StackOverflow envisage tout !
        22 juillet 2018 à 0:39:34

        Une tache cron qui envoie des email tu veux dire ?
        • Partager sur Facebook
        • Partager sur Twitter
          22 juillet 2018 à 0:47:35

          oui, la tache en question serait l'exécution d'un script qui va voir dans ta DB la date d'envoi souhaitée, et si nécessaire, rédige et envoie le mail

          • Partager sur Facebook
          • Partager sur Twitter
          Google répond à tout, PHP Manual sait (presque) tout, StackOverflow envisage tout !
            22 juillet 2018 à 1:03:21

            Oui je vois en faite j'ai un champs date de publication dans mon entité articles qui permet de définir la date de publication de l'articles ! 

            du coup je doit comparé cette date la a ma tache cron c'est ça ? 

            • Partager sur Facebook
            • Partager sur Twitter

            Symfony créer une newsletter

            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
            • Editeur
            • Markdown