fonction mail()

Petit nouveau ! | 3 Messages

28 mai 2010, 20:01

Bonjour,

j'ai récupéré une fonction mail() afin de pouvoir envoyer des mail avec piece jointe directement depuis mon serveur.

Le code fonctionne parfaitement lorsque j'envoi des fichiers texts car on attribue text/plain à la variable mime:
$mimeType = 'text/plain';

Mais je ne souhaite pas envoyer seulement des fichiers texte, lorsque j'envoi une photo, le code fu fichier jpg apparait sous forme de code.

J'aimerais aussi pouvoir envoyer des exécutables, alors j'ai testé avec $mimeType = 'application/octet-stream'; mais ca n'a pas marché...

D'autre part, le texte que je rentre dans la variable texte n'est pas recu par le destinataire.

N' existe t'il pas une solution pour ne pas avoir à préciser à chaque fois le type de fichier envoyé?


voici le code:
<?php
 
function mail_attachement($to , $bcc , $sujet , $message , $fichier , $typemime , $nom , $reply , $from){
 
 $limite = "_parties_".md5(uniqid (rand()));
 
 $mail_mime = "Date: ".date('l j F Y, G:i')."\n";
 $mail_mime .= "MIME-Version: 1.0\n";
 $mail_mime .= "Content-Type: multipart/mixed;\n";
 
 $mail_mime .= " boundary=\"----=$limite\"\n\n";
 
//le fichier
 $attachement = "------=$limite\n";
 $attachement .= "Content-Type: $typemime; name=\"$nom\"\n";
 $attachement .= "Content-Transfer-Encoding: base64\n";
 $attachement .= "Content-Disposition: attachment; filename=\"$nom\"\n\n";
 
 $fd = fopen( $fichier, "r" );
 $contenu = fread( $fd, filesize( $fichier ) );
 fclose( $fd );
 $attachement .= chunk_split(base64_encode($contenu));
 
 $attachement .= "\n\n\n------=$limite\n";
 
 return mail($to, $sujet, $texte.$attachement, "Reply-to: $reply\nFrom: $from\nBcc: $bcc\n".$mail_mime);
 }
 
?>


<?php
 
 $adresse_exp  = '[email protected]';
 $adresse_dest = '[email protected]';
 $adresse_dest2 = '[email protected]';
 $sujet = 'email';
 $texte = "cette zone de texte n'est pas recu par le destinataire";
 $cheminfichier = 'image.jpg;
 $nomfichier = image.jpg';
$mimeType = 'text/plain';
 $replyto = ""; // peut être nul
 
mail_attachement($adresse_dest, $adresse_dest2, $sujet , $texte , $cheminfichier , $mimeType , $nomfichier  , $replyto , $adresse_exp);
 
?>
Dans l'attente, cordialement

ViPHP
AB
ViPHP | 5818 Messages

28 mai 2010, 20:16

Y'a quelque chose d'intéressant ici http://www.vulgarisation-informatique.c ... ece_jointe

Petit nouveau ! | 3 Messages

28 mai 2010, 20:28

merci de ta réponse, dans ce code, la personne envoi des fichiers jpg, il a donc utilisé Content-Type: image/jpeg;
Mais moi je voudrais que ce soit quelque chose de général pour ne pas avoir à modifier cela à chaque fois que j'envoi un fichier différent, d'ailleurs pour un exe, application/octet-stream ne marche sur mon ordinateur.

merci

Petit nouveau ! | 3 Messages

29 mai 2010, 11:47

quelqu'un pourrait il m'aider svp?

ViPHP
ViPHP | 1136 Messages

29 mai 2010, 15:27

Utilise un lib faite pour ça ....

Ne réinventes pas la roue ...

My favorite : Rmail