IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
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

Langage PHP Discussion :

Erreur sur un envoi de mail


Sujet :

Langage PHP

  1. #1
    Membre averti
    Inscrit en
    Mars 2004
    Messages
    1 907
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 1 907
    Points : 411
    Points
    411
    Par défaut Erreur sur un envoi de mail
    Bonjour,

    su mon site l'envoi de mail suivant à toujours fonctionné :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    // ENVOI DE MAIL
    $envoi_mail_body = '';
     
    include('mail-contact.php');
     
    $envoi_mail->Body = $envoi_mail_body;
    avec mail-contact.php

    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
    <?php
     
    // mail provenant de crecli02_etape02.php
     
    	require "phpmailer/class.phpmailer.php";
    	$envoi_mail = new PHPmailer();
    	// $envoi_mail->IsSMTP();
    	$envoi_mail->IsHTML(true);
    	// $envoi_mail->Mailer="mail"
    	// $envoi_mail->Host='xx.xx.xx.x';
    	$envoi_mail->From=$mail;
    	$envoi_mail->FromName='xx'; // expéditeur que l'on voit apparaître
    	$envoi_mail->AddAddress('xx@xx.com');
    	$envoi_mail->AddBCC ('xx1@yahoo.fr');
    	// $envoi_mail->AddReplyTo('xxx@gmail.com');
    	$envoi_mail->Subject=(($abus)?'ABUS : ':'').$sujet;
    	//$envoi_mail->Subject=if($abus){ echo 'ABUS : ';}$sujet;
    	// $envoi_mail->Subject=$sujet;
    	$envoi_mail->Body=$message;
     
     
    	if(!$envoi_mail->Send()){ //Teste si le return code est ok.
    	  echo $envoi_mail->ErrorInfo; //Affiche le message d'erreur (ATTENTION:voir section 7)
    	}
    	else{	  
    	  $message_mail[] = '<center><font color="red">'.$txt0177.'</font></center>';
    	}
    	// $envoi_mail->SmtpClose();
    	unset($envoi_mail);
     
    ?>

    Mais depuis un mois, sans aucun changement de ma part, il y a les messages d'erreur suivants :

    [31-Aug-2014 21:04:29 Europe/Berlin] PHP Warning: Creating default object from empty value in /home/swapnfly/public_html/contact.php on line 261
    Il s'agit de cette ligne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $envoi_mail->Body = $envoi_mail_body;
    Et j'ai remarqué que à dans chaque fichier où j'envoie des mails j'ai le même message d'erreur...

  2. #2
    Modérateur
    Avatar de Bisûnûrs
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 868
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 868
    Points : 16 258
    Points
    16 258
    Par défaut
    Tu fais un unset($envoi_mail); à la fin de mail-contact.php, donc la variable n'existe plus quand tu essaies d'affecter à Body la valeur vide.

  3. #3
    Membre averti
    Inscrit en
    Mars 2004
    Messages
    1 907
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 1 907
    Points : 411
    Points
    411
    Par défaut
    Bonjour Bisûnûrs et merci pour cette remarque.
    Ce qui est bizarre, c'est que ça à toujours fonctionné comme ça...
    Et du jour au lendemain, ça ne fonctionne plus...

    Je sais qu'il y a eu récemment un changement de version PHP chez mon hébergeur. Est-ce ça pourrait venir de là ?

    Du coup la ligne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    	unset($envoi_mail);
    Faut-il toujours la garder ?

    A quel endroit dois-je l'intégrer ?

    Merci d'avance.

  4. #4
    Modérateur
    Avatar de Bisûnûrs
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 868
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 868
    Points : 16 258
    Points
    16 258
    Par défaut
    Citation Envoyé par sam01 Voir le message
    Je sais qu'il y a eu récemment un changement de version PHP chez mon hébergeur. Est-ce ça pourrait venir de là ?
    C'est une possibilité plus que probable, oui.

    Citation Envoyé par sam01 Voir le message
    Du coup la ligne

    Faut-il toujours la garder ?
    Oui, c'est préférable, et c'est plutôt la ligne là qu'il faut supprimer :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $envoi_mail->Body = $envoi_mail_body;

  5. #5
    Membre averti
    Inscrit en
    Mars 2004
    Messages
    1 907
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 1 907
    Points : 411
    Points
    411
    Par défaut
    Pardon d'insister Bisûnûrs,
    il me semblait que c'était la ligne suivante que je devais supprimer

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    // $envoi_mail->SmtpClose();
    	unset($envoi_mail);

  6. #6
    Modérateur
    Avatar de Bisûnûrs
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 868
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 868
    Points : 16 258
    Points
    16 258
    Par défaut
    Supprimer cette ligne fera en sorte que tu n'auras plus d'erreur, oui. Cependant ton script ne sera pas optimisé et utilisera de la mémoire pour rien, sauf si tu arrives à me dire à quoi servent exactement ces lignes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $envoi_mail_body = '';
    ...
    $envoi_mail->Body = $envoi_mail_body;
    Puisque visiblement, elles ne servent à rien.

  7. #7
    Membre averti
    Inscrit en
    Mars 2004
    Messages
    1 907
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 1 907
    Points : 411
    Points
    411
    Par défaut
    Je t'avoue que je ne sais plus trop. Ca fait un bout de temps que ce code est dans mon application et ça avait toujours fonctionné comme ça...

    Je vais donc retirer ces deux lignes et vérifier si ça fonctionne.

    Merci pour ton aide Bisûnûrs.

Discussions similaires

  1. [XL-2010] Erreur sur code envoi de mail
    Par Begood18 dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 08/03/2013, 20h22
  2. Réponses: 16
    Dernier message: 07/03/2011, 16h00
  3. [Mail] Erreur sur l'envoi d'un e-mail
    Par opeo dans le forum Langage
    Réponses: 1
    Dernier message: 14/08/2007, 06h30
  4. [Mail] controle sur l'envoi de mail
    Par titicurio dans le forum Langage
    Réponses: 6
    Dernier message: 12/09/2006, 12h29
  5. Probleme sur code envoie de mail
    Par xboulney dans le forum Access
    Réponses: 2
    Dernier message: 20/04/2006, 21h31

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo