Envoyer un lien de téléchargement PDF par email

Résolu
dellai.najeh Messages postés 14 Date d'inscription samedi 25 août 2018 Statut Membre Dernière intervention 10 mars 2019 - 11 sept. 2018 à 01:29
dellai.najeh Messages postés 14 Date d'inscription samedi 25 août 2018 Statut Membre Dernière intervention 10 mars 2019 - 12 sept. 2018 à 01:02
Bonjour,


En fait, dans ma page de détails d'une publication, j'ai un bouton de téléchargement. Lorsque nous cliquons sur "téléchargement", une fenêtre s'ouvre dans laquelle nous entrons l'e-mail de l'utilisateur destinataire et un lien pdf sera envoyé à cet e-mail. J'ai réussi à afficher le popup mais je n'ai pas trouvé de solution pour envoyer le lien de téléchargement PDF. Je ne sais pas comment récupérer ce lien en sachant que lors de l'ajout d'une publication, j'ai un fichier qui sera enregistré dans la base de données en tant qu'attribut de fichier contenant le nom du fichier avec l'extension pdf. merci de me donner de l'aide, j'ai cherché, mais malheureusement je n'ai pas trouvé la solution que je recherche. J'ai créé la fonction email mais je suis bloqué je ne sais pas comment procéder plus tard.


Framwork Symfony 3.4

1 réponse

jordane45 Messages postés 38136 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 16 avril 2024 344
11 sept. 2018 à 11:15
Bonjour,

Déjà ... "un lien pdf " .. ça ne veut rien dire....
On peut dire : Un lien hypertext, un lien html (à la rigeur), un lien d'un fichier pdf (éventuellement)

Ensuite... on ne comprend pas sur quoi tu bloques exactement...
- L'envoie d'un mail ?
- L'affichage du lien dans le mail ?
- La récupération du lien du fichier à envoyer en fonction du bouton sur lequel l'utilisateur a cliqué ?

Et puis.. on ne sait rien de ton code.... il serait bien de montrer un minimum le code que tu utilises pour qu'on puisse essayer de comprendre...

NB : Pour poster ton code, pense à utiliser LES BALISES DE CODE
Explications disponibles ici : https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code

.



0
dellai.najeh Messages postés 14 Date d'inscription samedi 25 août 2018 Statut Membre Dernière intervention 10 mars 2019
Modifié le 11 sept. 2018 à 20:21
Bonjour, avant tout pour tous les explications, voilà donc j'ai réussi à créer le popup et de récupérer le fichier que je veux envoyer son lien par email par la suite.
le problème maintenant que je n'ai pas pu recevoir un email .
je vais vous montrer mon code source :
 
 /**
     * 
     * @Route("/{id}/sendLink", name="link_english_pub")
     *
     */
    public function sendLinkAction($id) {
        $form = $this->createForm('MDWEB\FrontBundle\Form\InEnglishModalShowType');

        $request = $this->container->get('request_stack')->getCurrentRequest();
        $form->handleRequest($request);
        $em = $this->getDoctrine()->getManager();

        // $inenglish = $em->getRepository('MDWEBInEnglishBundle:InEnglish')->find($id);
        //  if ($form->handleRequest($request)->isValid()) {
        $inenglish = $em->getRepository('MDWEBInEnglishBundle:InEnglish')->find($id);

        $link = $inenglish->getFile();
        var_dump($link);
        $user = $this->get('security.token_storage')->getToken()->getUser();
        $this->sendEmail($user, $inenglish, $link);
        var_dump($this->sendEmail($user, $inenglish, $link));
//cette ligne me renvoie null 

        return $this->render('MDWEBFrontBundle:InEnglish:show.html.twig', array(
                    'form' => $form->createView(),
                    'inenglish' => $inenglish,
        ));
    }
//function send email
    private function sendEmail($user, $inenglish, $link) {
//Setup the message
        $message = \Swift_Message::newInstance()
// subject of message
                ->setSubject('Nouvelle publication : ' . $inenglish->getTitle())
// source of message
                ->setFrom('mandrill@tunisienumerique.com')
// sent message receiver
                ->setTo($user->getEmail())
// content of message
                ->setBody($this->renderView('MDWEBFrontBundle:InEnglish:email.html.twig', array('user' => $user, 'inenglish' => $inenglish, 'link' => $link), 'text/html'));

// send the message
        $this->get('mailer')->send($message);
    }




voilà le contenu de email.html.twig
<!DOCTYPE html>
<html>
    <head>
        <title>Publication : {{inenglish.title}}</title>
    </head>
    <body>
        <p>
            Bonjour {{ user.username | capitalize }},
            <br><br>
            vous avez une nouvelle publication dont la catégorie est : {{ inenglish.Categorie}}<br>
            Pour consulter le détail de cette publication , merci de vous rendre sur :
            <a href="{{inenglish.file}}" target="_blank">{{inenglish.file }}</a>

            <br><br>
            Cordialement,<br>
            ____<br>
            <strong>MD-Web</strong>
        </p>
    </body>
</html>


0
jordane45 Messages postés 38136 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 16 avril 2024 344
11 sept. 2018 à 20:48
Tu bosses en LOCAL ou sur un serveur ?
Si en local, faudra faire un truc du genre
https://www.developpez.net/forums/d1023479/php/bibliotheques-frameworks/symfony/swiftmail-envoi-mail-localhost/#post5738751
0
dellai.najeh Messages postés 14 Date d'inscription samedi 25 août 2018 Statut Membre Dernière intervention 10 mars 2019
Modifié le 11 sept. 2018 à 21:12
maintenant en local mais par la suite ça sera sur un serveur.
et comment faire pour la récupération du lien.
merci! j'espère que je ne te dérange pas.
0
jordane45 Messages postés 38136 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 16 avril 2024 344 > dellai.najeh Messages postés 14 Date d'inscription samedi 25 août 2018 Statut Membre Dernière intervention 10 mars 2019
11 sept. 2018 à 21:31
De quel lien parles tu ???
Juste avant tu nous as dit
j'ai réussi à créer le popup et de récupérer le fichier que je veux envoyer son lien par email par la suite.
... donc il est où le problème ???
Le fichier est stocké sur le disque ou directement en BDD ???
Si en BDD... tu dois, au choix :
Avoir une page qui récupère le fichier à afficher (et c'est son url que tu envoies par mail), soit tu as le fichier sur le disque ... et dans ce cas c'est le chemin vers ce fichier que tu indiques dans le lien.....
Je ne comprends vraiment pas ton souci....
0
dellai.najeh Messages postés 14 Date d'inscription samedi 25 août 2018 Statut Membre Dernière intervention 10 mars 2019
Modifié le 11 sept. 2018 à 22:10
D'accord le fichier en fait est stocké en BDD sous forme d'un attribut file avec extension de cette manière ' 6c2550734e19fb6b5c91e2b80f9285cd.pdf ' par la suite il est enregistré dans /web/uploads/6c2550734e19fb6b5c91e2b80f9285cd.pdf.
quelle est la bonne méthode entre ces 2 : utiliser l'attribut file de la BDD ou bien le chemin du file sous le dossier /web ?
merci!
0
Rejoignez-nous