begin process at 2012 05 28 22:26:05
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Divers

 > 

Débutant(e)

 > 

Envoie de mail avec pièce jointe php, renseignement


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Envoie de mail avec pièce jointe php, renseignement

mercredi 14 janvier 2009 à 10:39:23 | Envoie de mail avec pièce jointe php, renseignement

fanzy76

Bonjour, je sais que ce sujet est assez redondant, mais j'aurais besoin de renseignements. Après diverses recherchent sur la toile, je n'ai pu répondre à cette question :
Est-il possible d'envoyer un mail avec pièce jointe en php sans faire d'upload?

Si je me pose cette question, c'est pour la simple et bonne raison que je crée un site internet en php et que la fonction pour envoyer des mails avec pièce jointe fonctionne bien en local mais pas sur le serveur distant (je ne peux toucher à la config de php.ini dont aucune valeur n'est renseignée pour permettre l'upload).

Un coup de main serait le bienvenu.

Merci d'avance!


 Quand ça bug, ça bug!
mercredi 14 janvier 2009 à 10:53:50 | Re : Envoie de mail avec pièce jointe php, renseignement

Teclis01

Je pense pas que ça soit possible pour des raisons évidentes de sécurité et d'accès au fichier.

Il vaut mieux poser une question et passer pour bête que le rester toute sa vie

Les geeks n'ont pas une case en moins ils commencent juste à compter à partir de zéro

mercredi 14 janvier 2009 à 11:20:43 | Re : Envoie de mail avec pièce jointe php, renseignement

fanzy76

Alors comment faire pour envoyer un mail avec pièce jointe sans modifier le php.ini?
Je bloque sur ce problème depuis deux jours, et je ne trouve aucune réponse sur différents forums.

voici le code:
$dossier = "/tmp/";
   $taille = $_FILES['size']['name'];
   $extensions = array('.png', '.gif', '.jpg', '.jpeg', 'txt', 'doc', 'pdf');
   $extension = strrchr($_FILES['cv']['name'], '.');
   $taille_maxi=3000000;   
   
   if(!is_uploaded_file($_FILES['cv']['tmp_name']))
   {
    $erreur = "Le fichier est introuvable";
   }
   else
   {
    if($taille>$taille_maxi)
    {
         $erreur = 'Le fichier est trop gros...';
    }
    if(!isset($erreur)) //S'il n'y a pas d'erreur, on upload
    {
        //On formate le nom du fichier ici...
        $fichier = strtr($_FILES['cv']['tmp_name'], 'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ', 'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
        $fichier = preg_replace('/([^.a-z0-9]+)/i', '-', $fichier);
     
        if(move_uploaded_file($_FILES['cv']['tmp_name'], $dossier . $fichier)) //Si la fonction renvoie TRUE, c'est que ça a fonctionné...
        {
            //=====Déclaration des messages au format texte et au format HTML
      $message_html = "Recrutement:\r\n".$civilite." ".$nom." ".$prenom;
      $message_html .= "Recrutement:\r\n".$civilite." ".$nom." ".$prenom."\r\nTél: ".$tel."\r\n".$commentaires;
      //==========
      
      //=====Lecture et mise en forme de la pièce jointe
      /*$fichiers = fopen($dossier . $fichier, "r");
      $attachement = fread($fichiers, $taille);
      $attachement = chunk_split(base64_encode($attachement));
      fclose($fichiers);*/
      //==========
      
      //=====Création de la boundary
      $boundary = "-----=".md5(rand());
      $boundary_alt = "-----=".md5(rand());
      //==========
      
      //=====Définition du sujet
      $sujet = "Recrutement";
      //=========
      
      //=====Création du header de l'e-mail
      $header = "From: ".$nom." ".$prenom."<".$email.">\n";
      $header.= "Reply-to: ".$nom." ".$prenom."<".$email.">\n";
      $header.= "MIME-Version: 1.0\n";
      $header.= "Content-Type: multipart/mixed;\n boundary=\"$boundary\"\n";
      //==========
      
      //=====Création du message
      $message = "\n--".$boundary."\n";
      $message.= "Content-Type: multipart/alternative;\n boundary=\"$boundary_alt\"\n";
      $message.= "\n--".$boundary_alt."\n";
      
      //=====Ajout du message au format HTML
      $message.="Content-Type: text/plain; charset=\"iso-8859-1\"\n";
      $message.="Content-Transfer-Encoding: 8bit\n";
      $message.= $message_html."\n";      
      //==========
      
      //=====On ferme la boundary alternative
      $message.= "\n--".$boundary_alt."--\n";
      //==========
      
      
      
      $message.= "\n--".$boundary."\n";
      
      //=====Ajout de la pièce jointe      
      //$message .= 'Content-Type: text/plain; name="'.$fichier."\n";
      $message .= 'Content-Transfer-Encoding: base64'."\n";
      $message .= 'Content-Disposition:attachement; filename="CV"'.$extension.''."\n\n";
      
      $message .= chunk_split(base64_encode(file_get_contents($dossier.$fichier)))."\n";
      //==========
      
      //=====Envoi de l'e-mail      
         if(mail("yy@xx.fr",$sujet,$message,$header))
         {
             $erreur = 'Le mail a été envoyé';
         }
         else
         {
             $erreur = 'Le mail n\'a pu être envoyé';
         }
     }
     else
     {
      $erreur = "impossible de déplacer le fichier";
     }
    }
    else
    {
     echo $erreur;
    }
   }

Les warnings que j'obtiens sur le serveur distant sont :

Warning

: move_uploaded_file(/web/tmp/-tmp-phpnqulG3) [function.move-uploaded-file]: failed to open stream: No such file or directory in /home/www/7f07b10f0600c52fe8910da7b4848683/web/pgs/postuler.php on line 71

Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move '/tmp/phpnqulG3' to '/web/tmp/-tmp-phpnqulG3' in /home/www/7f07b10f0600c52fe8910da7b4848683/web/pgs/postuler.php on line 71La ligne 71 fait référence à :  if(move_uploaded_file($_FILES['cv']['tmp_name'], $dossier . $fichier))

Merci quand même Teclis01 pour cette rapide réponse

  ça bug et y en a mar!  
mercredi 14 janvier 2009 à 11:45:32 | Re : Envoie de mail avec pièce jointe php, renseignement

Teclis01

Facile. Change d'hébergeur >_<

Il vaut mieux poser une question et passer pour bête que le rester toute sa vie

Les geeks n'ont pas une case en moins ils commencent juste à compter à partir de zéro

mercredi 14 janvier 2009 à 12:17:04 | Re : Envoie de mail avec pièce jointe php, renseignement

fanzy76

Si ça pouvait être aussi facil, malheureusement le client ne voudra pas!
Et en attendant, le site bug.
Y aurait pas une solution qui pourrait arranger tout le monde?
mercredi 14 janvier 2009 à 14:32:31 | Re : Envoie de mail avec pièce jointe php, renseignement

Teclis01

Yep!
Tu réponds à ce client que l'on ne peut pas faire ce genre de chose sur un hébergement gratuit (je me demande qui prendrait le risque de mettre un site ou il y a un applicatif important sur un hébergement gratos) on a les prestations à la hauteur du prix de l'hébergement.
S'il veut pas changer de host ou prendre un hébergement pro et bien ... C'est pas possible.

Il vaut mieux poser une question et passer pour bête que le rester toute sa vie

 Les geeks n'ont pas une case en moins ils commencent juste à compter à partir de zéro



Cette discussion est classée dans : mail, pièce, jointe, php, envoie


Répondre à ce message

Sujets en rapport avec ce message

envoie de mail PHP avec piece jointe [urgent] [ par lounkokobi270987 ] J' ai essayé plusieur code sur le net our envoyé des mail avec pièce jointe en PHP plus préciséent un MP3 et je comprend pas pour quoi la piece jointe Cherche script PHP mail avec pièce jointe [ par bydouille ] Bonjour,Cela fait 4 jours que je galère,J'ai cherché, cherché... mais aucun des bouts de codesque j'ai trouvés ne fonctionnent !Je cherche un script s envoie d'un formulaire en php [ par ArnaudT62 ] Bonjour à tous, voilà mon soucil. Dans le site que je suis entrain de créer, je veux mettre un formulaire en php, voici ce que j'ai mis ( source trouv formulaire d'envoie mail [ par nicodu94 ] Bonjours à tous.Je suis débutant dans le php.J'ai créer un site en php et sur ma page d'accueil j'ai fait une zone de formulaire qui permet aux person Problème d'envoie de mail [ par fanzy76 ] Bonjour,J'ai un problème dont je n'arrive pas à trouver l'origine.Je suis en cours de création d'un site. Tous les formulaires en PHP retournent les d pièce jointe mutante!!!!!!! [ par parlaciel ] Bonjour à vous,je dois envoyer un mail en imap avec une pièce jointe. jusque là tout va bien, j'utilise imap_mail_compose() puis imap_append().après u Mail HTML avec pièce jointe [ par ov3rdoze ] Bonjour à tousJe cherche à envoyer un mail au format HTML avec une pièce jointe (au format PDF). J'ai pour l'instant fait ce code qui fonctionne très Problème d'envoie de mail avec mail() [ par Morgz ] Bonjour à tous! Voici mon problème, j'utilise wampserver en local et j'essaye de mettre en place un fichier PHP pour envoyer un simple mail. Malheu pb d'accents envoie de mail via fonction php mail [ par fredericmaill ] Bonjour,j'envoie des mail grâce a la fonction mail de php, les email son bien envoyé de ce coté la pas de pb, par contre j'ai un pb du coté des accent Envoi de mail ac pièce jointe [ par missy972 ] Mon problème est le suivant,Je fais une sauvegarde d'une base de donnée et je souhaite l'envoyer sur ma boîte mail, mais j'ai un msg d'erreur qui dit:


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,764 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales