Salut à tous. Je suis en train de faire un systeme de mail pour envoyer du texte avec deux pièces jointes.
Tout fonctionne niquel sauf que je ne recoit qu'une seule des deux pièces jointes.
Si vous avez une idée .... je vous en remercie d'avance.
Rude
Modifié par ffwrude (13 Aug 2008 - 17:49)
Tout fonctionne niquel sauf que je ne recoit qu'une seule des deux pièces jointes.
Si vous avez une idée .... je vous en remercie d'avance.
Rude
$expediteur = substr($_POST["adresses"],0,-1);
echo $expediteur;
echo"<h3>Envoi de mail</h3>";
$boundary = "-----=".md5(uniqid(rand()));
$header = "MIME-Version: 1.0\r\n";
$header .= "Content-Type: multipart/mixed; boundary=\"$boundary\"\r\n";
$header .= "\r\n";
$headers .='From: "XXXX@XXX.fr'."\n";
$headers .='Reply-To: XXX@XXX.fr'."\n";
$msg = "--$boundary\r\n";
$msg .= "Content-Type: text/html; charset=\"iso-8859-15\"\r\n";
$msg .= "Content-Transfer-Encoding:8bit\r\n";
$msg .= "\r\n";
$msg .='<html><head><title>Un titre ici</title></head><body>';
$msg .= stripslashes($_POST["texteu"])."\r\n";
$msg .='</body></html>';
$msg .= "\r\n";
include ('./fonction_mime.php'); // Fonctions pour retourner le type MIME d'un fichier
$fichier = $_FILES["fichier_1"]["tmp_name"];
$fichier_nom = $_FILES["fichier_1"]["name"];
if($fichier[0]=="\\"){
$fichier=stripslashes($fichier);
}
if($fichier != ""){
$fp = fopen($fichier, "r") or die("probleme à l'ouverture du fichier");
$attachment = fread($fp, filesize($fichier));
fclose($fp);
}
$attachment = chunk_split(base64_encode($attachment));
$fichier=basename($fichier);
$typeMIMEFichier= mime($fichier);
$msg .= "--$boundary\r\n";
$msg .= "Content-Type: ".$typeMIMEFichier."; name=\"$fichier_nom\"\r\n";
$msg .= "Content-Transfer-Encoding: base64\r\n";
$msg .= "Content-Disposition: attachement; filename=\"$fichier_nom\"\r\n";
$msg .= "\r\n";
$msg .= $attachment . "\r\n";
$msg .= "\r\n\r\n";
$fichier2 = $_FILES["fichier_2"]["tmp_name"];
$fichier2_nom = $_FILES["fichier_2"]["name"];
if($fichier2[0]=="\\"){
$fichier2=stripslashes($fichier2);
}
if($fichier2 != ""){
$fp2 = fopen($fichier2,"r") or die("problème à l'ouverture du fichier");
$attachment2 = fread($fp2,filesize($fichier2));
fclose($fp2);
}
$attachment2 = chunk_split(base64_encode($attachment2));
$fichier2=basename($fichier2);
$typeMIMEFichier2 = mime($fichier2);
$msg .= "--$boundary--\r\n";
$msg .= "Content-Type: ".$typeMIMEFichier2."; name=\"$fichier2_nom\"\r\n";
$msg .= "Content-Transfer-Encoding: base64\r\n";
$msg .= "Content-Disposition: attachement; filename=\"$fichier2_nom\"\r\n";
$msg .= "\r\n";
$msg .= $attachment2 . "\r\n";
$msg .= "\r\n\r\n";
$msg .= "--$boundary--\r\n";
$dest=$expediteur;
$paketKonVeu=20;
$morceauDest=explode(',',$dest);
if(sizeof($morceauDest)<=$paketKonVeu){ //ca tient dans un seul paquet
$expediteur=""; //chaine vide
for($i=0;$i<=$paketKonVeu-1;$i++){
if($i==$paketKonVeu-1){ //dernier email
$expediteur.= $morceauDest[$i]; //pas de Virgule à la fin
}else{
$expediteur .= $morceauDest[$i].",";
}
}
echo "<BR>Envoi de mail EN COURS";
mail($expediteur,$sujet,$msg,$header);
echo "-----TERMINE";
}
if(sizeof($morceauDest)>$paketKonVeu){ //il faut plusieurs paquets
$nbPaquets=ceil(sizeof($morceauDest)/$paketKonVeu);
//EXEMPLE PAR PAQUET DE 20 DESTINATAIRES
//INDICES DU TABLEAU :
//0-->19 20-->39 40-->59 60-->79 80-->99 100-->119
for($paquet=0;$paquet<$nbPaquets;$paquet++){
$expediteur=""; //chaine vide
$seuilBas=$paquet*$paketKonVeu;
$seuilHaut=$seuilBas+($paketKonVeu-1);
for($i=$seuilBas;$i<=$seuilHaut;$i++){
if($i==$seuilHaut){ //dernier email
$expediteur .= $morceauDest[$i];//pas de Virgule à la fin
}else{
$expediteur .= $morceauDest[$i].",";
}
} //fin du FOR $seuil
echo "<BR>Envoi de mail pour la serie ".($paquet+1)." de destinataires EN COURS";
set_time_limit(0);
mail($expediteur,$objet,$msg,$header);
echo "-----TERMINE";
} //fin du FOR $paquet
} //fin du IF
echo "<BR><h3>Fin de l'envoi de mail</h3>";
?>
Modifié par ffwrude (13 Aug 2008 - 17:49)