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 :

[PHPMailer] - pièce jointe corrompue [PHP 5.2]


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    100
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 100
    Points : 64
    Points
    64
    Par défaut [PHPMailer] - pièce jointe corrompue
    Bonjour à tous,

    je m'arrache les cheveux sur un problème d'envoi de fichier avec PHPMailer. En local tout fonctionne très bien. Depuis le serveur, je recois le mail, avec la pièce jointe, même celle-ci ne s'ouvre pas : elle est corrompue.

    Je pense que mon script est correct vue qu'il fonctionne en local...

    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
     
    <?php
    function mail($nom_expediteur,$mail_expediteur,$nom_destinatire,$mail_destinatire,$objet,$email_body,$piecesJointes=0,$accuse=0)
    {
        include_once(PATH_A_RESSOURCES."class.phpmailer.php");
        $mail = new PHPmailer();
        $mail->SetLanguage('fr', $lang_path = PATH_A_RESSOURCES."phpmailer/language/");
        $mail->IsMail();
        $mail->IsSMTP(true);
        $mail->Host=HOST;
        $mail->Username=USERNAME;
        $mail->Password=PASSWORD;
        $mail->SMTPAuth=true;
        $mail->IsHTML(true);
        $mail->From=$mail_expediteur;
        $mail->FromName=$nom_expediteur;
        $mail->AddAddress($mail_destinatire);
        $mail->AddReplyTo ($mail_expediteur);   
     
        if($accuse==1)
        {
            $mail->ConfirmReadingTo=$mail_expediteur;
        }
     
        $mail->Subject=utf8_decode($objet);
        $mail->Body=utf8_decode($email_body);
     
        /*if(!empty($piecesJointes))
        {
           foreach($piecesJointes as $element)
            {
                $mail->AddAttachment($element);
            }
        }*/
     
        $mail->AddAttachment("./image.jpg"); //ajout d'une pièce jointe au plus simple. Mon image est "propre" et le chemin aussi
     
        if(!$mail->Send()){
        $isValidate = false;
        exit(ALERT_ERROR."Erreur durant l'envoi du mail. Veuillez recommencer ultérieurement ". $mail->ErrorInfo."</div></div>");     // TEXT ERROR   //Teste le return code de la fonction
        }
        else{    
       exit(ALERT_SUCCESS."Le mail a bien été envoyé à ".$nom_destinatire." </div></div>");
        }
        $mail->SmtpClose();
    }
    Je n'ai aucune idée d'ou peux venir cette erreur, il n'y a aucune trace d'erreur dans les logs. Quelqu'un a déjà rencontrer ca ? En pièce jointe voici le mail tel que je le reçois (à renommer en .eml), corrompu

  2. #2
    Expert confirmé
    Avatar de N1bus
    Homme Profil pro
    Dev. Web & OpenERP
    Inscrit en
    Janvier 2003
    Messages
    2 827
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Dev. Web & OpenERP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 827
    Points : 5 673
    Points
    5 673
    Par défaut
    Bonjour, tu mets
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $mail->IsMail();
    $mail->IsSMTP(true);
    C'est l'un ou l'autre, non ?

    Si tu utilises SMTP, regarde cet exemple : http://phpmailer.worxware.com/index.php?pg=exampleasmtp

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    100
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 100
    Points : 64
    Points
    64
    Par défaut
    Merci pour ta réponse.

    oui, je dois utiliser le SMTP. J'ai essayé de virer le

    mais ca ne change rien. Et je ne peux pas accèder au site http://phpmailer.worxware, il est bloqué par le pare-feu du boulot...

  4. #4
    Expert confirmé
    Avatar de N1bus
    Homme Profil pro
    Dev. Web & OpenERP
    Inscrit en
    Janvier 2003
    Messages
    2 827
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Dev. Web & OpenERP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 827
    Points : 5 673
    Points
    5 673
    Par défaut
    Alors je te mets le contenu de l'example :
    Code php : 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
    require_once('../class.phpmailer.php');
    //include("class.smtp.php"); // optional, gets called from within class.phpmailer.php if not already loaded
     
    $mail = new PHPMailer(true); // the true param means it will throw exceptions on errors, which we need to catch
     
    $mail->IsSMTP(); // telling the class to use SMTP
     
    try {
      $mail->Host       = "mail.yourdomain.com"; // SMTP server
      $mail->SMTPDebug  = 2;                     // enables SMTP debug information (for testing)
      $mail->SMTPAuth   = true;                  // enable SMTP authentication
      $mail->Host       = "mail.yourdomain.com"; // sets the SMTP server
      $mail->Port       = 26;                    // set the SMTP port for the GMAIL server
      $mail->Username   = "yourname@yourdomain"; // SMTP account username
      $mail->Password   = "yourpassword";        // SMTP account password
      $mail->AddReplyTo('name@yourdomain.com', 'First Last');
      $mail->AddAddress('whoto@otherdomain.com', 'John Doe');
      $mail->SetFrom('name@yourdomain.com', 'First Last');
      $mail->AddReplyTo('name@yourdomain.com', 'First Last');
      $mail->Subject = 'PHPMailer Test Subject via mail(), advanced';
      $mail->AltBody = 'To view the message, please use an HTML compatible email viewer!'; // optional - MsgHTML will create an alternate automatically
      $mail->MsgHTML(file_get_contents('contents.html'));
      $mail->AddAttachment('images/phpmailer.gif');      // attachment
      $mail->AddAttachment('images/phpmailer_mini.gif'); // attachment
      $mail->Send();
      echo "Message Sent OK<p></p>\n";
    } catch (phpmailerException $e) {
      echo $e->errorMessage(); //Pretty error messages from PHPMailer
    } catch (Exception $e) {
      echo $e->getMessage(); //Boring error messages from anything else!
    }

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    100
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 100
    Points : 64
    Points
    64
    Par défaut
    Cool, merci.. Mais c'est toujours pareil. Aucune erreur SMTP à priori

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SMTP -> FROM SERVER: 220 mail.test.fr ESMTP Postfix (Debian/GNU) SMTP -> FROM SERVER: 250-mail.test.fr 250-PIPELINING 250-SIZE 10240000 250-ETRN 250-STARTTLS 250-AUTH LOGIN PLAIN 250-AUTH=LOGIN PLAIN 250-ENHANCEDSTATUSCODES 250-8BITMIME 250 DSN SMTP -> FROM SERVER: 250 0.0.0 Ok SMTP -> FROM SERVER: 250 0.0.5 Ok SMTP -> FROM SERVER: 354 End data with . SMTP -> FROM SERVER: 250 0.0.0 Ok: queued as 6642327032C SMTP -> FROM SERVER: 221 2.0.0 Bye Message Sent OK
    Quand je fais mes essais en local, j'utilise les mêmes paramètres et tout roule. Je me demande si ca vient pas de ma conf PHP..

  6. #6
    Expert confirmé
    Avatar de N1bus
    Homme Profil pro
    Dev. Web & OpenERP
    Inscrit en
    Janvier 2003
    Messages
    2 827
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Dev. Web & OpenERP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 827
    Points : 5 673
    Points
    5 673
    Par défaut
    Et ça ne pourrait pas être une histoire d'Anti-virus qui te corromprait le fichier ?

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    100
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 100
    Points : 64
    Points
    64
    Par défaut
    Un anti-virus qui soit sur le serveur alors ? J'ai pas pensé à ca. Je viens de lui faire analyser la pièce jointe, il n'a rien détecté. Ce serait quand même curieux qu'il me l'attache, mais en prenant le soin de me la pourrir avant !

    Et l'antivirus de mon poste je ne pense pas puisque je la reçois très bien quand je fais l'envoi en local. Je viens de me l'envoyer sur ma boite yahoo, même résultat, impossible à ouvrir

  8. #8
    Expert confirmé
    Avatar de N1bus
    Homme Profil pro
    Dev. Web & OpenERP
    Inscrit en
    Janvier 2003
    Messages
    2 827
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Dev. Web & OpenERP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 827
    Points : 5 673
    Points
    5 673
    Par défaut
    Tu as bien la dernière version de PHPMailer ? (5.2.4)

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    100
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 100
    Points : 64
    Points
    64
    Par défaut
    5.2.4 ? Whaou non je crois que j'ai la 1.71 !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     /**
         *  Holds PHPMailer version.
         *  @var string
         */
        var $Version           = "1.71";
    Je fais un petit upgrade et je reviens ...

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    100
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 100
    Points : 64
    Points
    64
    Par défaut
    Bon j'y ai cru, mais non ca ne change rien

  11. #11
    Expert confirmé
    Avatar de N1bus
    Homme Profil pro
    Dev. Web & OpenERP
    Inscrit en
    Janvier 2003
    Messages
    2 827
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Dev. Web & OpenERP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 827
    Points : 5 673
    Points
    5 673
    Par défaut
    Tu as bien remplacé tous les fichiers de l'ancienne version ?
    Voire supprimer carrément et recoller la nouvelle.

    parce que je m'en sers dans plusieurs sites et elle fonctionne nickel

  12. #12
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    100
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 100
    Points : 64
    Points
    64
    Par défaut
    ouais ouais j'ai tout viré. Je l'utilise aussi ailleurs et ca marche bien. Je penche plus pour un problème d'environnement.. J'adore

  13. #13
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    100
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 100
    Points : 64
    Points
    64
    Par défaut
    Bon après m'être arraché les cheveux pendant 3 journées pleines dessus, essayé de passer à PHP5.3 au lieu de 5.29, passer de CKEditor à KCEditor, etc, je me suis apercu que j'avais 2 fichiers class.phpmailer.php et que je faisais pointer vers le mauvais

    Mais ce que je ne m'explique toujours pas, c'est pourquoi ca marchait en local ????

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. CDO message et pièce jointe corrompue
    Par Ced_Del dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 28/03/2012, 17h11
  2. [PHPMailer] Pièces jointes
    Par Riri80 dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 23/04/2010, 13h54
  3. [PHPMailer] Pièce jointe trop volumineuse
    Par Bioteck dans le forum Bibliothèques et frameworks
    Réponses: 3
    Dernier message: 13/01/2010, 17h54
  4. [PhpMailer]Pièces jointes n'apparaissant pas.
    Par johweb dans le forum Langage
    Réponses: 1
    Dernier message: 01/04/2009, 17h47
  5. [PHPMailer] Pièce jointe en local
    Par meda dans le forum Bibliothèques et frameworks
    Réponses: 5
    Dernier message: 28/10/2005, 18h06

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