Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

  1. #1
    Membre du Club
    Unable to open file for reading
    Bonjour à tous,
    Je suis en train de réaliser une application Web avec synfony 4.2.5.
    La seule chose qui ne fonctionne pas en production c est l'envoie d'un fichier PDF par email avec swiftmailer.
    En développement tout se passe très bien mais une fois en production j'ai l erreur
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    Unable to open file for reading

    Pourtant les droits du répertoire de destination sont en 777.
    Pourquoi une fois sur mon serveur de test (raspberry pi 3 b+) cela ne fonctionne plus tout d'un coup ?
    Avec vous une piste ?
    Merci

    Vincent

  2. #2
    Membre du Club
    Indications
    Je souhaiterai juste préciser certains détails qui me semblent important.
    En premier la phase de développement c est faite sur mon pc en local.
    Et pour finir mon serveur de test est une raspberry pi3 b+ (donc petit processeur et peu de ram ,1go).
    Les deux systèmes tournent sous debian respectivement 9 et 10.
    J ai bien une petite hypothèse quand à cette erreur. Je pense que je n'ai peut être pas assez de ressources pour attacher le PDF en mail.
    Cependant, le PDF est bien affiché sur le navigateur que je le demande à mon application.
    Un petit htop (pour voir la conso de ram et des 4 coeurs du processeur) ne montre pas de hausse significative et durable de la consommation des ressources.
    Donc la je suis un peu perdu.
    Merci de votre aide.

    Vincent

  3. #3
    Membre confirmé
    Salut,

    D'après Internet, ça peut vouloir dire soit que le fichier n'existe pas à l'endroit où tu essayes de le récupérer pour le joindre au main, soit que tu n'utilises pas le chemin absolu : https://stackoverflow.com/a/39614627

  4. ###raw>post.musername###
    Membre du Club
    Bonjour _Thomas ravi de vous revoir et merci de m'aider à nouveau,
    Alors le code est le même sur ma machine est sur mon serveur.
    Je comprends bien que le fichier n'est pas trouvé mais je ne sais pas pourquoi car le pdf est bien généré à la volé avec FPDF mais il n'est pas créé avec l'envoi par email.
    Je vous donne le code de mon controller qui gere les pdf
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
     
    <?php
    namespace App\Controller;
     
    use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
    use Symfony\Component\Routing\Annotation\Route;
    use Symfony\Component\HttpFoundation\Request;
    use Symfony\Component\HttpFoundation\Response;
    use App\Entity\Vehicule;
    use App\Repositoty\VehiculeRepository;
    use App\Entity\Reparation;
    use App\Repositoty\ReparationRepository;
    use FPDF;
     
    /**
     * @Route("/profile")
     */
     
    class PdfController extends AbstractController
    {
      /**
        * @Route("/pdf/{id}", name="fiche_vehicule")
        */
        public function historiqueReparations($id)
        {
          $ressourceRepository = $this->getDoctrine()->getRepository(Reparation::class);
          $reparations = $ressourceRepository->findRepByVehicule($id);
          require_once('../FPDF/fpdf.php');
          header('Content-Type: application/pdf');
          $pdf = new FPDF();
          $pdf->AddPage();
          $pdf->SetFont('Arial','B',8);
          $idRep = 1;
          //$pdf->Cell();
          foreach ($reparations as $reparation)
          {
              $pdf->Ln(7);
              $pdf->Cell(40,10, $idRep." : ". utf8_decode($reparation->getAFaire())." : ". $reparation->getEffectuerLe()->format('d-m-Y H:i'));
              $idRep++;
          }
          $pdf->Output();
          ob_end_clean();
          return new Response($pdf->Output(), 200, array('Content-Type' => 'application/pdf'));
        }
     
        /**
          * @Route("/pdfsending/{id}", name="fiche_vehicule_sending")
          */
          public function historiqueReparationsSending($vehicules)
          {
            header('Content-Type: application/pdf');
            $pdf = new FPDF();
            foreach($vehicules as $vehicule)
            {
              $id = $vehicule->getId();
              $immat = $vehicule->getImmatriculation();
              $ressourceRepository = $this->getDoctrine()->getRepository(Reparation::class);
              $reparations = $ressourceRepository->findRepByVehicule($id);
              $pdf->AddPage();
              $pdf->SetFont('Arial','B',8);
              $idRep = 1;
              $pdf->Ln(7);
              $pdf->Cell(40,10, utf8_decode("fiche du véhicule : $immat"));
              foreach ($reparations as $reparation)
              {
                  $pdf->Ln(7);
                  $pdf->Cell(40,10, $idRep." : ". utf8_decode($reparation->getAFaire())." : ". $reparation->getEffectuerLe()->format('d-m-Y H:i'));
                  $idRep++;
              }
            }
     
          $name = "FicheSuiviVehicule.pdf";
          //$CheminFichier = "../fichesVehiculesPdf/";
            //$pdf->Output(, 'F');
          // ob_end_clean();
     
            return new Response ($pdf->Output('F', $name));
          }
    }
    ?>

    Et le code qui géré l'attachement du fichier pdf au mail
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    <?php
     
    namespace App\Controller;
     
    use App\Entity\Email;
    use App\Entity\Client;
    use App\Form\EmailType;
    use App\Repository\EmailRepository;
    use App\Repository\ClientRepository;
    use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
    use Symfony\Component\HttpFoundation\Request;
    use Symfony\Component\HttpFoundation\Response;
    use Symfony\Component\Routing\Annotation\Route;
     
    /**
     * @Route("/email")
     */
    class EmailController extends AbstractController
    {
        /**
         * @Route("/new", name="email_new", methods={"GET","POST"})
         */
        public function new(Request $request, \Swift_Mailer $mailer, ClientRepository $clientRepository): Response
        {
            $email = new Email();
            $form = $this->createForm(EmailType::class, $email);
            $form->handleRequest($request);
     
            if ($form->isSubmitted() && $form->isValid()) {
              $email->setDateEmission(new \DateTime('now'));
              $sujet = $form->get('sujet')->getData();
              $priorite = strtoupper($form->get('priorite')->getData());
              $emetteur = $form->get('emetteur')->getData();
              $destinataireOrigine = $form->get('destinataire')->getData(); // le DO est en fait une collection au format brute
              //$ressourceRepository = $this->getDoctrine()->getRepository(Client::class);
              $destinataireTab = explode(" ", $destinataireOrigine->first(), 2);
              $destinataire = $clientRepository->findOneBy($critaires = array('nom' => $destinataireTab[0],'prenom' => $destinataireTab[1]))->getEmail();
              $corps = $form->get('corps')->getData();
     
                if($form->get('EnvoyerFormulaireDuVehicule')->getData())
                {
                  $message = (new \Swift_Message($priorite . ':' . $sujet))
                    ->setFrom($emetteur)
                    ->setTo($destinataire)
                    ->setReplyTo($emetteur)
                    ->setBody($corps .
                     '<br><br>' .
                     'Ce mail contient les fiches de suivi du vehicule'.
                     '<HR>' .
                     '<br>'.
                     '<small><i>Ce mail vous est envoyé avec l\'application Web FollowCarService, l\'efficacité au service de la simplicité<br>
                     Vous souhaitez vous renseigner sur FollowCarService ? => adresse email <b>|</b> num tel</i></small>',
                        'text/html'
                    )
                    ->setContentType('application/pdf');
                  //  $attachment = \Swift_Attachment::fromPath("../fichesVehiculesPdf/FicheSuiviVehicule_$id.pdf");
                    $vehicules = $clientRepository->findOneBy($critaires = array('nom' => $destinataireTab[0],'prenom' => $destinataireTab[1]))->getVehicules();
                    $this->forward('App\Controller\PdfController::historiqueReparationsSending',['vehicules'=>$vehicules]);
                    $attachment = \Swift_Attachment::fromPath('FicheSuiviVehicule.pdf', 'application/pdf');
                    $message->attach($attachment);
                }
                else {
                  //$pathDebug = getcwd() . "\n";
                  $message = (new \Swift_Message($priorite . ':' . $sujet))
                    ->setFrom($emetteur)
                    ->setTo($destinataire)
                    ->setReplyTo($emetteur)
                    ->setBody($corps .
                     '<br><br>' .
                     '<HR>' .
                     '<br>'.
                     '<small><i>Ce mail vous est envoyé avec l\'application Web FollowCarService, l\'efficacité au service de la simplicité<br>
                     Vous souhaitez vous renseigner sur FollowCarService ? => adresse email <b>|</b> num tel</i></small>',
                        'text/html'
                    );
                }
     
            $mailer->send($message);
     
            $this->addFlash(
                  'notice',
                  "Votre message a bien été envoyé à l'adresse : $destinataire"
              );
                if($form->get('EnvoyerFormulaireDuVehicule')->getData()){
                  unlink('FicheSuiviVehicule.pdf');
                }
            }
     
            return $this->render('email/new.html.twig', [
                'email' => $email,
                'form' => $form->createView(),
            ]);
        }
    }

    voila en esperant que cela vous eclairera plus que moi

    Merci de votre aide

    Vincent
      0  0

  5. #5
    Membre confirmé
    D'après le lien stackoverflow envoyé dans mon message précédent ou encore dans les exemples de la doc officielle (ICI), il faut passer un chemin absolu pour indiquer où se trouve le fichier à joindre :
    Code php :Sélectionner tout -Visualiser dans une fenêtre à part
    $attachment = \Swift_Attachment::fromPath('/chemin/absolu/vers/FicheSuiviVehicule.pdf', 'application/pdf');

  6. #6
    Membre du Club
    cela ne fonctionne pas
    Bonsoir _Thomas,
    J'i la même erreur avec le chemin absolu
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    Unable to open file for reading [/var/www/html/public/FicheSuiviVehicule.pdf]

    Je pense que le pdf n'est pas généré. Pour quelle raison ? je ne sais pas.

    Merci de votre aide

    Vincent

  7. #7
    Membre confirmé
    Citation Envoyé par agi.v Voir le message
    Je pense que le pdf n'est pas généré.
    Est-ce qu'il y a un fichier généré dans /var/www/html/public ?
    Si oui, vérifie éventuellement les droits d'accès du fichier. Sinon, d'après la doc de FPDF pour sauvegarder le fichier il faut passer des paramètres spécifique à la méthode "Output" (http://www.fpdf.org/fr/doc/output.htm).

    Attention cependant il semblerait que la doc ne soit pas à jour et que l'ordre des paramètres soit plutôt celui-ci dans la dernière version (cf. http://www.fpdf.org/phorum/read.php?...21&t=59821) : $pdf->Output($filename,'F');

  8. #8
    Membre du Club
    Fichier
    Bonsoir,
    Les droits du répertoire public sont en 777 et dans le dossier public je n ai pas le fichier PDF sur mon serveur de test alors que sur mon pc oui.
    Je suis dans l incompréhension....
    Merci de prendre du temps pour m aider

    Vincent

  9. #9
    Membre éprouvé
    salut,
    ton fichier pdf est situé hors de la racine du serveur Web( le dossier public) il est donc impossible d'y accéder.
    Pour lire ce fichier pdf tu peux utiliser l'url absolue ( http://domaine.com/pdfsending/1 ) ) qui appelle ta méthode de génération de pdf. Brèf ton fichier pdf accessible est http://domaine.com/pdfsending/1 .

    Avec SF, pour générer une url absolue de la route fiche_vehicule_sending:

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    $idVehicule = 1; //id du véhicule
    $urlPdf = $this->router->generateUrl(
        'fiche_vehicule_sending',
        ['id' =>  $idVehicule ],
        UrlGeneratorInterface::ABSOLUTE_PATH
    );
    //   http://domaine.com/pdfsending/1


    https://symfony.com/doc/4.1/routing....-absolute-urls
    Tu peux maintenant joindre url du pdf généré à ton mail.
    T'as plus besoin de faire un $this->forward('App\Controller\...' ) vers ton action historiqueReparationsSending.

  10. #10
    Membre du Club
    Je ne comprends pas bien
    Bonjour Armel18,
    Je ne comprends pas bien cette méthode, génére-t-elle juste une URL absolue ? Pouvez vous m'en dire plus sur cette action afin que je puisse l'intégrer ?
    et pourquoi cela marche -til sur mon pc et pas sur mon serveur ?
    Mercid e votre aide

    Vincent

  11. #11
    Membre du Club
    J'ai finalement compris
    Bonjour Armel18,
    Merci de votre renseignement sur smfony et le generateur d'URL
    Je vais essayer de l'implémenter de suite et je vous tiens au courant.
    Mais supposont que ce ne soit pas le chemin le probleme mais autre chose (je ne sais pas) auriez vous une autre priste ?

    Merci

    Vincent

  12. ###raw>post.musername###
    Membre du Club
    Bonjour Armel18 et _Thomas
    Je viens d'essayer la solution proposée par armel18 et malgrè le fait d'avoir mis le
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    use Symfony\Component\Routing\Generator\UrlGeneratorInterface;

    j'obtiens malgrès tout cette erreur
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    Notice: Undefined property: App\Controller\EmailController::$router


    voici le code de la methode
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
      /**
         * @Route("/new", name="email_new", methods={"GET","POST"})
         */
        public function new(Request $request, \Swift_Mailer $mailer, ClientRepository $clientRepository): Response
        {
            $email = new Email();
            $form = $this->createForm(EmailType::class, $email);
            $form->handleRequest($request);
     
            if ($form->isSubmitted() && $form->isValid()) {
              $email->setDateEmission(new \DateTime('now'));
              $sujet = $form->get('sujet')->getData();
              $priorite = strtoupper($form->get('priorite')->getData());
              $emetteur = $form->get('emetteur')->getData();
              $destinataireOrigine = $form->get('destinataire')->getData(); // le DO est en fait une collection au format brute
              //$ressourceRepository = $this->getDoctrine()->getRepository(Client::class);
              $destinataireTab = explode(" ", $destinataireOrigine->first(), 2);
              $destinataire = $clientRepository->findOneBy($critaires = array('nom' => $destinataireTab[0],'prenom' => $destinataireTab[1]))->getEmail();
              $corps = $form->get('corps')->getData();
     
                if($form->get('EnvoyerFormulaireDuVehicule')->getData())
                {
                  $message = (new \Swift_Message($priorite . ':' . $sujet))
                    ->setFrom($emetteur)
                    ->setTo($destinataire)
                    ->setReplyTo($emetteur)
                    ->setBody($corps .
                     '<br><br>' .
                     'Ce mail contient les fiches de suivi du vehicule'.
                     '<HR>' .
                     '<br>'.
                     '<small><i>Ce mail vous est envoyé avec l\'application Web FollowCarService, l\'efficacité au service de la simplicité<br>
                     Vous souhaitez vous renseigner sur FollowCarService ? => </small>',
                        'text/html'
                    )
                    ->setContentType('application/pdf');
                  //  $attachment = \Swift_Attachment::fromPath("../fichesVehiculesPdf/FicheSuiviVehicule_$id.pdf");
                    $vehicules = $clientRepository->findOneBy($critaires = array('nom' => $destinataireTab[0],'prenom' => $destinataireTab[1]))->getVehicules();
     
                    $ficheSuiviVehicule = $this->router->generateUrl(
                      'fiche_vehicule_sending',
                      ['vehicules' =>  $vehicules ],
                      UrlGeneratorInterface::ABSOLUTE_PATH
                    );
     
                    $attachment = \Swift_Attachment::fromPath($ficheSuiviVehicule, 'application/pdf');
                    $message->attach($attachment);
                }
                else {
                  //$pathDebug = getcwd() . "\n";
                  $message = (new \Swift_Message($priorite . ':' . $sujet))
                    ->setFrom($emetteur)
                    ->setTo($destinataire)
                    ->setReplyTo($emetteur)
                    ->setBody($corps .
                     '<br><br>' .
                     '<HR>' .
                     '<br>'.
                     '<small><i>Ce mail vous est envoyé avec l\'application Web FollowCarService, l\'efficacité au service de la simplicité<br>
                     Vous souhaitez vous renseigner sur FollowCarService ? =>  <b>|</b> </i></small>',
                        'text/html'
                    );
                }
     
            $mailer->send($message);
     
            $this->addFlash(
                  'notice',
                  "Votre message a bien été envoyé à l'adresse : $destinataire"
              );
                if($form->get('EnvoyerFormulaireDuVehicule')->getData()){
                  //unlink('FicheSuiviVehicule.pdf');
                }
            }
     
            return $this->render('email/new.html.twig', [
                'email' => $email,
                'form' => $form->createView(),
            ]);
        }

    Je ne comprends pas très bien pourquoi cette erreur survient.
    Merci

    Vincent
      0  0

  13. #13
    Membre éprouvé
    désolé c'est plutôt $this->generateUrl et pourtant j'ai posté un lien sur la doc SF.
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    $idVehicule = 1; //id du véhicule
    $urlPdf = $this->generateUrl(
        'fiche_vehicule_sending',
        ['id' =>  $idVehicule ],
        UrlGeneratorInterface::ABSOLUTE_PATH
    );
    //   http://domaine.com/pdfsending/1



    Je ne comprends pas bien cette méthode, génére-t-elle juste une URL absolue ? Pouvez vous m'en dire plus sur cette action afin que je puisse l'intégrer ?
    et pourquoi cela marche -til sur mon pc et pas sur mon serveur ?
    sur ton pc as-tu un serveur de mails qui envoie les messages à destination d'une adresse mail?

  14. #14
    Membre du Club
    ?
    Bonsoir armel18,
    sur mon pc un serveur de mail ? non pas a ma connaissance. en tout cas je n'en ai pas installé (debian 9)
    Je vais regardé plus précisement la doc de symfony que vous m'avez donné.
    Merci beaucoup je vous tiens au courant !

    Vincent

  15. #15
    Membre du Club
    cela ne fonctionne pas
    Bonsoir armel18,
    Je suis navré de vous l'ecrire mais votre solution ne fonctionne pas chez moi même en dev sur mon pc. voici l'erreur.
    Unable to open file for reading [/profile/pdfsending/1]
    Je suis sûr que le fichier pdf n'est pas généré.
    Mais merci de votre aide car grace a vous j'ai pu commencer à apprendre les url avec symfony 4
    Une autre piste ?

    Vincent

  16. #16
    Membre éprouvé
    En se basant sur le code qui fonctionnait en local, j'ai factorisé ton code question d'avoir peu de lignes à lire.
    Le chemin vers les fichiers peut être déclaré en tant que paramètre dans config/services.yaml.
    Dans l'exemple suivant le fichier pdf se trouve dans src/Controller( normalement le dossier src n'est censé que contenir les fichiers PHP mais pour ne pas trop se compliquer la tâche on laisse pour l'instant les fichiers pdf dans src/Controller/).
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    # config/services.yaml
    parameters:
        #chemin du dossier des fichiers pdf( ex: src/Controller )
        dossier_fiches: '%kernel.project_dir%/src/Controller'  # <- ici


    Pour récupérer ce chemin dans un contrôleur :
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
     
    $dossierFiches =$this->getParameter("dossier_fiches");
    dump( $dossierFiches );



    Du coup après modification le contrôleur devient:
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
     
     
    /**
     * @Route("/email")
     */
    class EmailController extends AbstractController
    {
        /**
         * @Route("/new", name="email_new", methods={"GET","POST"})
         */
        public function new(Request $request, \Swift_Mailer $mailer, ClientRepository $clientRepository): Response
        {
     
     
            $email = new Email();
            $form = $this->createForm(EmailType::class, $email);
            $form->handleRequest($request);
     
            if ($form->isSubmitted() && $form->isValid()) {
                $email->setDateEmission(new \DateTime('now'));
                $sujet = $form->get('sujet')->getData();
                $priorite = strtoupper($form->get('priorite')->getData());
                $emetteur = $form->get('emetteur')->getData();
                $destinataireOrigine = $form->get('destinataire')->getData(); // le DO est en fait une collection au format brute
                $destinataireTab = explode(" ", $destinataireOrigine->first(), 2);
                $destinataire = $clientRepository->findOneBy($critaires = array('nom' => $destinataireTab[0],'prenom' => $destinataireTab[1]))->getEmail();
                $corps = $form->get('corps')->getData();
     
                $message = (new \Swift_Message($priorite . ':' . $sujet))
                    ->setFrom($emetteur)
                    ->setTo($destinataire)
                    ->setReplyTo($emetteur)
                    ->setBody(
                        $this->renderView(
                         // templates/emails/envoie_fiche.html.twig
                            'emails/envoie_fiche.html.twig',
                            ['corps' => $corps ] // transmission de la variable corps dans la vue
                        ),
                        'text/html'
                    );
     
                if($form->get('EnvoyerFormulaireDuVehicule')->getData())
                {
                    /*
                     * chemin vers le dossier contenant les fichiers pdf.
                     * Ce chemin est declaré en tant que paramètre dans
                     * config/services.yaml.
                     */
                    $dossierFiches =$this->getParameter("dossier_fiches");
                    $fiche = $dossierFiches . '/FicheSuiviVehicule.pdf';//src/Controller/FicheSuiviVehicule.pdf;
     
                    $vehicules = $clientRepository->findOneBy($critaires = array('nom' => $destinataireTab[0],'prenom' => $destinataireTab[1]))->getVehicules();
                    $this->forward('App\Controller\PdfController::historiqueReparationsSending',['vehicules'=>$vehicules]);
                    $attachment = \Swift_Attachment::fromPath($fiche, 'application/pdf');
                    $message->attach($attachment);
     
                }
     
                $mailer->send($message);
     
                $this->addFlash(
                    'notice',
                    "Votre message a bien été envoyé à l'adresse : $destinataire"
                );
                if($form->get('EnvoyerFormulaireDuVehicule')->getData()){
                    unlink($fiche);
                }
            }
     
            return $this->render('email/new.html.twig', [
                'email' => $email,
                'form' => $form->createView(),
            ]);
        }
     
     
    }


    Pour plus de lisibilité j'ai séparé le texte du message dans un fichier à part(templates/emails/envoie_fiche.html.twig) :
    Code twig :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    {# templates/emails/envoie_fiche.html.twig #}
     
    {# texte envoyé depuis le formulaire #}
    {{ corps }}
     
     
    <br><br>
    Ce mail contient les fiches de suivi du vehicule.
    <hr>
    <br>
    <small><i>Ce mail vous est envoyé avec l'application Web FollowCarService, l'efficacité au service de la simplicité<br>
    Vous souhaitez vous renseigner sur FollowCarService ? => adresse email <b>|</b> num tel</i></small>


    Si ça ne marche toujours pas , essaie l'envoie de mail avec un fichier pdf de petite taille.

    Pour tester en local tu peux utiliser maildev qui est un vrai serveur SMTP permettant d'intercepter les emails .
    Après il y a également mailtrap, un service en ligne qui permet de capturer tous les emails, les inspecte et les débogue.

  17. #17
    Membre du Club
    Cela fonctionne
    Bonjour armel18,
    Alors premiere bonne nouvelle ! cela fonctionne en local. Je vous tiens au courant pour le serveur de test dans 1h ou 2h.
    Merci grandement a vous armel18

    Vincent

  18. #18
    Membre du Club
    Parfait !
    Bonjour à tous !
    Alors excellente nouvelle ! cela fonctionne très bien avec la solution de armel18 !
    Merci beaucoup a vous tous !!!!!

    Vincent