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

Bibliothèques et frameworks PHP Discussion :

[PHPMailer] Pièces jointes


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Membre du Club
    Profil pro
    responsable machine à café
    Inscrit en
    Janvier 2009
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : responsable machine à café

    Informations forums :
    Inscription : Janvier 2009
    Messages : 54
    Points : 52
    Points
    52
    Par défaut [PHPMailer] Pièces jointes
    Bonjour,

    je suis actuellement en configuration Movamp sous windows XP.
    J'aimerai envoyer des mails avec un pdf en pièce jointe.
    Pour cela, j'utilise PHPMailer.
    Mon problème est que le mail reçu sous Outlook est vide.
    Lorsque j'affiche l'entête du mail j'ai ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    From: toto@free.fr
    Subject: =?iso-8859-1?Q?Envoi_de_pi=E8ces_jointes_locales?=
    To: moi@moi.com
    Reply-to: toto@free.fr
    Message-id: <47ad0aeb26cd58c8313fad5596d9b33a@localhost>
    MIME-version: 1.0
    X-Mailer: PHPMailer [version 1.71]
    Content-type: multipart/mixed; boundary="Boundary_(ID_Ff4a9pXAqHw7SGcdhu4rGQ)"
    X-Priority: 3
    Sun-Java-System-SMTP-Warning: Lines longer than SMTP allows found and truncated.
    X-OriginalArrivalTime: 23 Apr 2010 08:51:12.0634 (UTC) FILETIME=[2043FDA0:01CAE2C2]
    Lorsque je désactive l'attachement dans mon script, le mail arrive et me marque un petit texte comme je le souhaite.

    PS : le script utilisé est celui de Sub0 :
    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
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
     
    <?php
    Require_once('phpmailer/class.phpmailer.php');
    $maxfiles = 3;
    $maxsize = 2000000;
    $from_adr = 'expediteur@free.fr';
    $to_adr = 'destinataire@hotmail.com';
     
    //============================================================
    if(isset($_POST['valider'])){
     
      // Test du nombre de fichier //
      $nbr=0;
      for($x=0;$x<$maxfiles;$x++) 
        if(!empty($_FILES['userfile']['name'][$x])) $nbr++;
      if($nbr<=0) die("Aucun fichier spécifié !<br/>"); 
     
      // Création du mail //
      $mail = New PHPmailer();
      $mail->IsHTML(true);
      $mail->FromName='';
      $mail->From=$from_adr;
      $mail->AddAddress($to_adr);
      $mail->AddReplyTo($from_adr);	
      $mail->Subject='Envoi de pièces jointes locales';
      $mail->Body='<html><body>Les fichiers sont attachés ci-dessus... <br></body></html>';
      $sendok=false;
     
      // Téléchargement des fichiers //
      for($x=1;$x<=$maxfiles;$x++) {
        $errorhttp=$_FILES['userfile']['error'][$x-1];
        $filenamehttp=$_FILES['userfile']['name'][$x-1]; 
        $typehttp=$_FILES['userfile']['type'][$x-1]; 
        $sizehttp=$_FILES['userfile']['size'][$x-1]; 
        $tmpfilehttp=$_FILES['userfile']['tmp_name'][$x-1];
        if (($errorhttp)and(!empty($filenamehttp))) { 
          switch ($errorhttp){ 
            case 1: echo "Erreur : Le fichier n°$x est trop grand !<br/>";break; 
            case 2: echo "Erreur : Le fichier n°$x est trop grand !<br/>";break; 
            case 3: echo "Erreur : Transfert du fichier n°$x interrompu !<br/>";break; 
            case 4: echo "Erreur : Le fichier n°$x est vide !<br/>";break; 
          } 
        } else { 
          if((!empty($filenamehttp))and($sizehttp>0)) {
            if($sizehttp<=$maxsize){
              if(@is_uploaded_file($tmpfilehttp)) { 
                 if(@eregi('.php',$filenamehttp)) $filenamehttp.='.txt'; 
                 if(filesize($tmpfilehttp)==$sizehttp) {
                   echo "Fichier n°$x uploadé : ".$filenamehttp.
                        " (".round(max($sizehttp,1024)/1024)." ko)<br/>";
                   $mail->AddAttachment($tmpfilehttp,$filenamehttp,'Base64');
                   $sendok=true;
                 } else echo "Erreur de téléchargement du fichier n°$x !<br/>";
              } else echo "Erreur de téléchargement du fichier n°$x !<br/>"; 
            } else echo "Erreur : Le fichier n°$x est trop grand !<br/>"; 
          } // else echo "Le fichier n°$x est introuvable ou vide !<br/>";
        }
      }
     
      // Envoi du mail //
      if($sendok){ 
        if(!$mail->Send()) echo $mail->ErrorInfo."<br/>"; 
        else echo "Mail envoyé à «".$to_adr."»<br/>";
      } else echo "Aucun fichier à attacher !<br/>";
     
      // Libération de l'objet //
    	$mail->SmtpClose();
    	unset($mail);
      die ("Opération terminée.<br/>");
    }
     
    //============================================================
    echo '<form method="post" enctype="multipart/form-data"'.
         ' onSubmit="document.getElementById(\'valider\').style.visibility=\'hidden\';">'. 
         '<input type="hidden" name="MAX_FILE_SIZE" value="'.$maxsize.'"/>';
    for($x=1;$x<=max($maxfiles,1);$x++)
      echo ' Fichier n°'.$x.' : <input type="file" name="userfile[]" size="20"/><br/>';
    echo '<br/><input type="submit" name="valider" id="valider" value="Envoyer..."/></form>';
     
     
    //============================================================
    ?>
    D'où provient l'erreur "Sun-Java-System-SMTP-Warning: Lines longer than SMTP allows found and truncated." ?
    Comment la résoudre ?

    Merci d'avance pour vos réponse.

  2. #2
    Membre du Club
    Profil pro
    responsable machine à café
    Inscrit en
    Janvier 2009
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : responsable machine à café

    Informations forums :
    Inscription : Janvier 2009
    Messages : 54
    Points : 52
    Points
    52
    Par défaut
    J'ai trouvé une solution à mon problème.

    Dans class.phpmailer.php, j'ai initialisé la variable LE comme suit :
    au lieu de :
    Le problème est surement dû au fait que mon serveur PHP+Mysql tourne sur windows XP en local avec MovAmp alors que le serveur mail utilisé est sous linux (?)

    En espérant que ca serve à quelqu'un d'autre.

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

Discussions similaires

  1. [PHP 5.2] [PHPMailer] - pièce jointe corrompue
    Par gussoner dans le forum Langage
    Réponses: 12
    Dernier message: 06/05/2013, 21h49
  2. [PHPMailer] Pièce jointe trop volumineuse
    Par Bioteck dans le forum Bibliothèques et frameworks
    Réponses: 3
    Dernier message: 13/01/2010, 17h54
  3. [PhpMailer]Pièces jointes n'apparaissant pas.
    Par johweb dans le forum Langage
    Réponses: 1
    Dernier message: 01/04/2009, 17h47
  4. [phpmailer]Copie cachée en pièce jointe ?
    Par elitemedia dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 25/11/2006, 21h50
  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