Envoi de mail avec fichier attaché (plus qu'à faire copier coller)

Contenu du snippet

Un script pour envoyé des mails avec fichiers attachés.
J'ai modifié quelques peu le script qui ne fonctionait plus avec PHP5. Là, tout doit marcher sans problèmes.
J'améliorerai vraiment le script cet été quand jaurais un peu plus de temps.
Dites moi si vous avez rencontré des problèmes ou si tout fonctionne correctement.
PS: N'oubliez pas de créer un dossier nommé "upload" sur le serveur utilisé.

Source / Exemple :


<?php
  
function mail_attach($to , $sujet , $message , $fichier, $type, $name , $from)
 {
   $mail_mime = "MIME-Version: 1.0\n";
   $mail_mime .= "Content-Type: multipart/mixed;\n";
   $mail_mime .= " boundary=\"----=_NextPart\"\n\n";
   $texte = "------=_NextPart\n";
   $texte .= "Content-Type: text/plain; charset=\"iso-8859-1\"\n";
   $texte .= "Content-Transfer-Encoding: 32bit\n\n";
   $texte .= stripslashes($message);
   $texte .= "\n\n";
   $attachement = "------=_NextPart\n";
   $attachement .= "Content-Type:  $type; name=\"$name\"\n";
   $attachement .= "Content-Transfer-Encoding: base64\n";
   $attachement .= "Content-Disposition: attachment; filename=\"$name\"\n\n";
   $fp = fopen($fichier, "rb");
   $buff = fread($fp, filesize($fichier));
   fclose($fp);
   $attachement .= chunk_split(base64_encode($buff));
   $attachement .= "\n\n\n------=_NextPart\n";
   $sujet = stripslashes($sujet);
   $from = stripslashes($from);
   if (file_exists($fichier))
      {
      return mail($to, $sujet, $texte.$attachement, "From: $from\n".$mail_mime);
      }
      else
      {
      return mail($to, $sujet, $texte, "From: $from\n".$mail_mime);
      }
  
 }
  
  
  
 if ($_POST['formulaire']==1 )
  
 {
        $name = $_FILES['Parcourir']['name'];
        $type = $_FILES['Parcourir']['type'];

        if (is_uploaded_file($_FILES['Parcourir']['tmp_name']))
        {
         move_uploaded_file($_FILES['Parcourir']['tmp_name'],$DOCUMENT_ROOT."/upload/".$name);
         $fichier = $DOCUMENT_ROOT."/upload/".$name;
        }
  
   if (@mail_attach($_POST['to'] , $_POST['sujet'] , $_POST['message'] , $fichier, $type, $name , $_POST['from']))
   {
    echo "<script language=\"javascript\">";
    echo "alert('Votre message a été envoyé')";
    echo "</script>";
   }
    else
   {
     echo "<script language=\"javascript\">";
     echo "alert('Votre message n'a pas pu être envoyé !!!')";
     echo "</script>";
   }
  
 @unlink ($DOCUMENT_ROOT."/upload/".$name);
 }
  
 ?>
  
  
 <html>
 <body>
 <form ENCTYPE="multipart/form-data" action=# method="POST">
 <center>
 <br>
 De: <input type="text" name = "from" size="30"><br>
 Destinataire: <input type="text" name = "to" size="30"><br>
 Sujet: <input type="text" name = "sujet" size="30"><br><br>
 Texte :<br>
 <textarea name="message" rows="15" cols="40"></textarea><br>
 <input type="file" name="Parcourir">
 <input type="hidden" name="formulaire" value="1">
 <input type="submit" value="OK"></center>
 </form>
 </body>
 </html>

Conclusion :


N'oubliez pas de créer un fichier nommé "upload" sur le serveur utilisé !!!

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.