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

EDI, CMS, Outils, Scripts et API PHP Discussion :

mail avec pièce jointe apartir du formulaire


Sujet :

EDI, CMS, Outils, Scripts et API PHP

  1. #1
    Membre averti
    Inscrit en
    Juin 2006
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 24
    Par défaut mail avec pièce jointe apartir du formulaire
    salut,
    j ai un formulaire , aprés le saisie je veux avoir un mail envoyé vers une adresse avec pièce jointe (fichier txt par exemple) contenant les info saisies.
    remarque mon hébergeur ne me donne pas le droit de créer un fichier sur le serveur .
    merci de m'aider

  2. #2
    Membre Expert
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573

  3. #3
    Membre averti
    Inscrit en
    Juin 2006
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 24
    Par défaut
    merci de répondre
    mais mon problème c'est que je ne peux pas créer un fichier sur le serveur (je n'ai pas l'autorisation. J'ai testé avec tmpfile() mais ça ne marche pas),
    merci de m'aider

  4. #4
    Membre Expert
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Par défaut
    Même avec ce code ?
    J'utilise seulement le dossier temporaire :
    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
    83
    84
    85
    <?php
    Require_once('phpmailer/class.phpmailer.php');
    $maxfiles = 3;
    $maxsize = 2000000;
    $from_adr = 'expediteur@free.fr';
    $to_adr = 'destinataire@hotmail.com';
    $subject = 'Envoi de pièces jointes locales';
     
     
    //============================================================
    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->IsMail();
      $mail->IsSMTP();
      $mail->Host='smtp.free.fr';
      $mail->From=$from_adr;
      $mail->AddAddress($to_adr);
      $mail->AddReplyTo($from_adr);	
      $mail->Subject=$subject;
      $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>';
     
     
    //============================================================
    ?>

Discussions similaires

  1. Réponses: 4
    Dernier message: 12/06/2014, 15h26
  2. [C++/MFC]Envoyer un mail avec Pièce jointe
    Par cjacquel dans le forum MFC
    Réponses: 4
    Dernier message: 12/06/2006, 13h48
  3. Envoi de mail avec pièce jointe
    Par gids01 dans le forum API standards et tierces
    Réponses: 1
    Dernier message: 20/04/2006, 13h15
  4. Envoie mail avec pièce jointe
    Par Juniora dans le forum Access
    Réponses: 3
    Dernier message: 03/04/2006, 14h24
  5. [VB]Bp envoie mail avec piéce jointe
    Par jm1213 dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 17/02/2006, 20h55

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