PHP

Envoie du mail avec pièce jointe

Résolu

Bonjour à tous,


Je suis en train de créer une page reporting dans l'application qui permettra aux utilisateurs d'envoyer un mail avec une pièce jointe. J'ai suivi plusieurs tutoriels sur l'envoie du mail avec PHPMailer, j'ai testé l'envoie du mail dans application et lorsque je clique sur le bouton envoyer il y a un message qui s'affiche mail à bien été envoyé, mais je n'arrive pas à recevoir le mail que j'ai envoyé depuis l'application dans mon compte de Yahoo.


Voici le code :


<?php
    use PHPMailer\PHPMailer\PHPMailer;
    

    require "PHPMailer/src/PHPMailerAutoload.php";
    require "PHPMailer/src/PHPMailer.php";
    require "PHPMailer/src/SMTP.php";
    require "PHPMailer/src/Exception.php";    

    $msg = "";

    if(isset($_POST['email']) && isset($_POST['submit'])){
        //$email = $_POST['email'];
        $email = isset($_POST['email']) ? $_POST['email'] : NULL;
        $mdp = $_POST['mdp'];
        $sujet = $_POST['sujet'];
        $message = $_POST['message'];
        $attachement = isset($_POST['attachement']) ? $_POST['attachement'] : NULL;
        //$attachement = $_POST['attachement'];


        $mail = new PHPMailer();

        $mail->isSMTP();
        $mail->Host="smtp.mail.yahoo.com";
        $mail->SMTPAuth = true;
        $mail->Username = "***********@yahoo.fr";
        $mail->Password = "password";
        $mail->Port = 465; //587
        $mail->SMTPSecure = "ssl"; //tls

        $mail->isHTML(true);
        $mail->setFrom($email);
        $mail->addAddress("************@yahoo.fr");
        $mail->Subject = $sujet;
        $mail->Body = $message;

        $mail->addAttachment('dossier/NameFile.pdf', 'NameFile.pdf');

        if(!$mail->send()){

            
            $msg = "Mail à été bien envoyé";
        }else{
            $msg = "Erreur";
        }

    }
?>


Dans le code j'ai bien précisée mon adresse du mail, mot de passe de mon compte Yahoo et aussi le nom du serveur SMTP de Yahoo, je ne sais pas d'où vient le problème.


Comment je dois faire pour corriger ce problème ?


Merci d'avance pour vos réponses.

630 vues
13 novembre 2020 à 17:10 (Édité)
Cette pub permet au site de vivre ...

6 commentaires

Bonjour @Jerem971,


J'ai déjà résolu le problème avec l'aide de ce tuto. Pour corriger ce problème j'ai installé sendmail et ensuite je l'ai configurée avec php.ini

Dans le code que j'ai mis dans le topic j'ai fait des fautes, voici le code que j'ai fait des corrections :


<?php
    use PHPMailer\PHPMailer\PHPMailer;

    $msg = "";

    if(isset($_POST['name']) && isset($_POST['email'])){
        $name = $_POST['name'];
        $email = $_POST['email'];
        $mdp = $_POST['mdp'];
        $subject = $_POST['subject'];
        $body = $_POST['body'];
        $attachement = $_POST['attachement'];

        require_once "PHPMailer/PHPMailer.php";
        require_once "PHPMailer/SMTP.php";
        require_once "PHPMailer/Exception.php";

        $mail = new PHPMailer();

        //smtp settings;
        $mail->isSMTP();
        $mail->Host = "smtp.gmail.com";
        $mail->SMTPAuth = true;
        $mail->Username = "adresse mail";
        $mail->Password = "mot de passe ";
        $mail->Port = 587;
        $mail->SMTPSecure = "TLS";

        //email settings
        $mail->isHTML(true);
        $mail->setFrom($email, $name);
        $mail->addAddress("adresse mail");
        $mail->Subject = ("$email ($subject)");
        $mail->Body = $body;
        $mail->addAttachment('dossier/NameFile.pdf', 'NameFile.pdf');

        if($mail->send()){
            $status = "success";
            $response = "Message à été bien envoyé";
        }else{
            $status = "failed";
            $response = "Il y a une erreur: <br>" . $mail->ErrorInfo;
        }

        exit(json_encode(array("status" => $status, "response" => $response)));
    }
?>


Je te remercie pour ton aide.

Re:


Très bien 😉

Je pense que ce lien devrait t'aider 😉

@Jerem971,


Oui c'est exactement ce que je souhaite faire d'une fonctionnalité qui permet d'envoyer un mail avec pièce jointe avec système de feedback.

Re:


Si je comprends bien, il s'agit d'un système de feedback que tu souhaites faire avec la fonctionnalité d'envoie de pièces jointes, est-ce cela ? 🤔

Bonjour @Jerem971,


Je me suis trompé ce n'est pas le formulaire de contact que je suis en train de créer, mais une page reporting qui permettra aux utilisateurs d'envoyer un mail avec une pièce jointe à partir d'une application. J'ai suivi plusieurs tutoriels pour créer la fonctionnalité d’envoyé un mail avec PHPMailer.


J'ai essayée de tester avec mon compte gmail, mais Gmail a bloqué le message ou le mail que j'ai envoyé depuis l'application avec une pièce jointe.


Je m'excuse, car au début je n'ai pas été assez clair d'expliquer le problème que j'ai rencontré, j'ai modifié le topic et j'ai ajouté le code.


Hello @Epeny,


Je pense que ce lien devrait t'aider 😉

Je t'avoue moi-même que je n'ai jamais réussi à faire un formulaire de contact fonctionnel avec les articles de formations dédié à ce sujet 😅


Peut-être qu'en postant ton code, les autres membres pourront t'aider à débug ? 🧐

Cette pub permet au site de vivre ...