Problème d'envoi avec phpmailer selon les serveurs

Résolu/Fermé
Micha_74 Messages postés 23 Date d'inscription samedi 26 septembre 2020 Statut Membre Dernière intervention 29 septembre 2020 - Modifié le 26 sept. 2020 à 12:26
Micha_74 Messages postés 23 Date d'inscription samedi 26 septembre 2020 Statut Membre Dernière intervention 29 septembre 2020 - 29 sept. 2020 à 11:56
Bonjour à tous,

Voici mon problème : J'ai installé et utilisé phpmailer selon les indications trouvées sur github et pas de problème pour envoyer des mails depuis mon site à partir de formulaires quand je passe par le serveur de mon école. Mais quand je test en local, ou chez mon hébergeur web (world light, pour le besoin d'un stage en entreprise) cela ne fonctionne plus.

En local, le mail n'est pas envoyé et le message d'erreur apparaît.

Chez mon hébergeur, le mail semble s'envoyer (message de succès) mais je ne le reçois pas.

Je vous transmet la partie de code, merci d'avance pour votre aide :).
[code]try{

$this->mail->From=$emailExpediteur;
$this->mail->FromName=$nomExpediteur;
$this->mail->Subject="Balance âgée";
$this->mail->MsgHTML($emailContent);
$this->mail->AltBody="Votre messagerie n'accepte pas le format HTML";
$this->mail->CharSet="UTF-8";
$this->mail->AddAddress($emailDestinataire);
$this->mail->AddAttachment($file_location);
if($this->mail->Send()){
$message[].="Email envoyé avec succès";
$type[].="success";
$desc[].='Envoi mail';
}
else{
$message[].="L'email n'a pas pu être envoyé";
$type[].="error";
$desc[].='Envoi mail';
}
}
catch(Exception $mail){
echo "Erreur :".$mail->ErrorInfo;
}[/code]

J'utilise une architecture MVC, voici le constructeur du model où se trouve l'initialisation de la classe phpmailer.

[code]<?php
include 'dompdf/autoload.inc.php';
use Dompdf\Dompdf;

use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;
require 'PHPMailer-master/src/PHPMailer.php';
require 'PHPMailer-master/src/Exception.php';

class Model{
/**
  • @varstring connexion au serveur via PDO
  • @accessprotected
  • /

protected $connexion;
/**
  • @varstring requette SQL
  • @accessprotected
  • /

protected $requete;
protected $pdf;

protected $mail;

/**
  • Méthode de construction de la class

*
  • /

public function __construct(){
//Définition des constantes contenants les identifiants de connexion
define('SERVER' ,"localhost");
define('USER' ,"root");
define('PASSWORD',"");
define('BASE' ,"*******");
try{
//On tente de se connecter avec la méthode PDO avec ces identifiants
$this->connexion= new PDO("mysql:host=".SERVER.";dbname=".BASE, USER, PASSWORD);
}
catch(Exception $e){
echo "Erreur : " . $e->getMessage();
}
$this->pdf= new Dompdf();
$this->mail=new PHPMailer();

}[/code]

6 réponses

yg_be Messages postés 22707 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 19 avril 2024 1 471
26 sept. 2020 à 13:19
bonjour, es-tu certain du nom de ton hébergeur?
0
Micha_74 Messages postés 23 Date d'inscription samedi 26 septembre 2020 Statut Membre Dernière intervention 29 septembre 2020
26 sept. 2020 à 13:54
Non autant pour moi, world <b>Lite</b> est le nom du service gratuit proposé par l'hébergeur PlanetHoster.

Et aussi je m'excuse pour la mise en forme du code, la balise [code] ne semble pas fonctionner...

En vous remerciant.
0
yg_be Messages postés 22707 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 19 avril 2024 1 471
26 sept. 2020 à 13:56
0
yg_be Messages postés 22707 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 19 avril 2024 1 471
26 sept. 2020 à 13:58
0
Micha_74 Messages postés 23 Date d'inscription samedi 26 septembre 2020 Statut Membre Dernière intervention 29 septembre 2020
26 sept. 2020 à 14:07
Je vous remercie,

Je regarde tout ça et je reviens vers vous ;)
0
yg_be Messages postés 22707 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 19 avril 2024 1 471
26 sept. 2020 à 14:29
pour l'utilisation en local, je suppose que tu as adapté tes fichiers de configuration pour te connecter à un service de messagerie?
0
Micha_74 Messages postés 23 Date d'inscription samedi 26 septembre 2020 Statut Membre Dernière intervention 29 septembre 2020 > yg_be Messages postés 22707 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 19 avril 2024
26 sept. 2020 à 15:41
Je n'ai pas adapté mes fichiers en local car je peut déjà faire mes tests sur le serveur de mon école, je voulais m'occuper de mon hébergeur en priorité pour que le client puisse tester la fonctionnalité.

Après lectyre de votre lien, j'ai crée un compte de messagerie depuis le panneau de commande de planetHoster, et modifié mon code comme ceci :
try{
            $this->mail->Host='webmail.world.planethoster.net:25';
            $this->mail->Username='******@mywebsitearctest.yn.fr';
            $this->mail->Password='*************';
            $this->mail->From=$emailExpediteur;
            $this->mail->FromName=$nomExpediteur;
            $this->mail->Subject="Balance âgée";
            $this->mail->MsgHTML($emailContent);
            $this->mail->AltBody="Votre messagerie n'accepte pas le format HTML";
            $this->mail->CharSet="UTF-8";
        
            $this->mail->AddAddress($emailDestinataire);
        
            $this->mail->AddAttachment($file_location);
            
            if($this->mail->Send()){
                $message[].="Email envoyé avec succès";
                $type[].="success";
                $desc[].='Envoi mail';
            }
            else{
                $message[].="L'email n'a pas pu être envoyé";
                $type[].="error";
                $desc[].='Envoi mail';
            }
            
            }
            catch(Exception $mail){
                echo "Erreur :".$mail->ErrorInfo;
            }


Mais toujours la meme chose, quand j'envoi le mail depuis mywebsitearctest.yn.fr j'ai le message de succès mais le mail ne s'envoi pas.
0
Micha_74 Messages postés 23 Date d'inscription samedi 26 septembre 2020 Statut Membre Dernière intervention 29 septembre 2020
26 sept. 2020 à 15:44
Je ne comprend pas cela fait 3 fois que j'envoi mon message mais rien e s'affiche dans la conversation. Les avez-vous reçus?
0
yg_be Messages postés 22707 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 19 avril 2024 1 471
26 sept. 2020 à 15:46
rien entre mon #6 et ton #11.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Micha_74 Messages postés 23 Date d'inscription samedi 26 septembre 2020 Statut Membre Dernière intervention 29 septembre 2020
Modifié le 26 sept. 2020 à 15:49
Je n'ai pas adapté mes fichiers en local car je peut déjà faire mes tests sur le serveur de mon école, je voulais m'occuper de mon hébergeur en priorité pour que le client puisse tester la fonctionnalité.

Après lectyre de votre lien, j'ai crée un compte de messagerie depuis le panneau de commande de planetHoster, et modifié mon code comme ceci :

Mais toujours la meme chose, quand j'envoi le mail depuis mywebsitearctest.yn.fr j'ai le message de succès mais le mail ne s'envoi pas.
0
Micha_74 Messages postés 23 Date d'inscription samedi 26 septembre 2020 Statut Membre Dernière intervention 29 septembre 2020
26 sept. 2020 à 15:51
Désolé mais mon message ne s'envoi pas dès lors que je met du code
0
Micha_74 Messages postés 23 Date d'inscription samedi 26 septembre 2020 Statut Membre Dernière intervention 29 septembre 2020
26 sept. 2020 à 15:53
$this->mail->Host='webmail.world.planethoster.net:25';
            $this->mail->Username='******@mywebsitearctest.yn.fr';
            $this->mail->Password='*************';
0
yg_be Messages postés 22707 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 19 avril 2024 1 471
26 sept. 2020 à 16:50
la suggestion était d'envoyer le mail vers une adresse mail hébergée chez le même hébergeur, c'est cela?
0
Micha_74 Messages postés 23 Date d'inscription samedi 26 septembre 2020 Statut Membre Dernière intervention 29 septembre 2020 > yg_be Messages postés 22707 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 19 avril 2024
26 sept. 2020 à 17:24
Disons que c'est assez différent de mon problème à moi.
1: Je ne suis pas chez Hosteur mais planetHoster (Dans le lien il s'agit de Hosteur apparemment)
2: Je n'ai pas de soucis avec un compte mail en particulier, aucun ne fonctionne que se soit yahoo, gmail ou autre.
3: Je n'ai aucun message d'erreur

Cependant une des réponse suggérée de crée un compte de messagerie dédié depuis la panneau de commande de l'hébergeur.
0
yg_be Messages postés 22707 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 19 avril 2024 1 471 > Micha_74 Messages postés 23 Date d'inscription samedi 26 septembre 2020 Statut Membre Dernière intervention 29 septembre 2020
26 sept. 2020 à 21:56
as-tu essayé d'envoyer un mail à destination du compte de messagerie dédié créé depuis la panneau de commande de l'hébergeur?
donc en utilisant cette adresse pour $emailDestinataire?
0
Micha_74 Messages postés 23 Date d'inscription samedi 26 septembre 2020 Statut Membre Dernière intervention 29 septembre 2020
26 sept. 2020 à 16:36
Bonjour,

Je reposte ma question car le post précédent ne me permettait pas d'éditer du code...

Voici le problème : Mon hébergeur est planethoster, j'utilise phpmailer pour envoyer des mails générés depuis mon site web. Quand je l'envoi depuis le serveur de mon école, sans préciser de compte de messagerie, cela fonctionne sans problème, mais quand je le met en ligne sur planète hoster le mail ne s'envoi pas bien que le message de succès apparaisse.

J'ai d'abord crée un compte de messagerie dans planetHoster et insérer les identifiants de connexion dans mon code que voici :

try{
            $this->mail->Host='webmail.world.planethoster.net:25';
            $this->mail->Username='******@mywebsitearctest.yn.fr';
            $this->mail->Password='*************';
            $this->mail->From=$emailExpediteur;
            $this->mail->FromName=$nomExpediteur;
            $this->mail->Subject="Balance âgée";
            $this->mail->MsgHTML($emailContent);
            $this->mail->AltBody="Votre messagerie n'accepte pas le format HTML";
            $this->mail->CharSet="UTF-8";
        
            $this->mail->AddAddress($emailDestinataire);
        
            $this->mail->AddAttachment($file_location);
            
            if($this->mail->Send()){
                $message[].="Email envoyé avec succès";
                $type[].="success";
                $desc[].='Envoi mail';
            }
            else{
                $message[].="L'email n'a pas pu être envoyé";
                $type[].="error";
                $desc[].='Envoi mail';
            }
            
            }
            catch(Exception $mail){
                echo "Erreur :".$mail->ErrorInfo;
            }


J'utilise une architecture MVC, donc voici le constructeur du model ou est initialisée la classe phpmailer :

<?php
include 'dompdf/autoload.inc.php';
use Dompdf\Dompdf;

use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;
require 'PHPMailer-master/src/PHPMailer.php';
require 'PHPMailer-master/src/Exception.php';

/**
 * Création d'une class Mère Model
 * 
 * Contient les méthodes de traitements des données liées à toutes les entités
 */
class Model{
    /**
     * @var string connexion au serveur via PDO
     * @access protected
     */
    protected $connexion;
    /**
     * @var string requette SQL
     * @access protected
     */
    protected $requete;
    
    protected $pdf;

    protected $mail;

    /**
    * Méthode de construction de la class 
    *
    */
    public function __construct(){
        //Définition des constantes contenants les identifiants de connexion
        define('SERVER' ,"localhost");
        define('USER' ,"*************");
        define('PASSWORD',"***************");
        define('BASE' ,"***************");
        try{
            //On tente de se connecter avec la méthode PDO avec ces identifiants
            $this->connexion= new PDO("mysql:host=".SERVER.";dbname=".BASE, USER, PASSWORD);
        }
        catch(Exception $e){
            //On récupère l'exeption éventuellement produite et on l'affiche
            echo "Erreur : " . $e->getMessage();
        }
        
        $this->pdf= new Dompdf();
        $this->mail=new PHPMailer();

    }


Je vous remercie pour votre aide
0