Bonjour,
Je viens auprés de vous solliciter une aide. En effet j'ai un probléme pour l'envoie de mail multi-destinataire car sur hotmail ça marche pas et gmail aussi alrs que sur yahoo ça marche. Si quelqu'un a une idéee voici le code php
<?php
/***********************************************************/
//----------------------------------
// Construction de l'entête
//----------------------------------
// On choisi généralement de construire une frontière générée aleatoirement
// comme suit. (REM: je n'en connais pas la raison profonde)
$boundary = "-----=".md5(uniqid(rand()));
// Ici, on construit un entête contenant les informations
// minimales requises.
// Version du format MIME utilisé
$header = "MIME-Version: 1.0\r\n";
// Type de contenu. Ici plusieurs parties de type different "multipart/mixed"
// Avec un frontière définie par $boundary
$header .= "Content-Type: multipart/mixed; boundary=\"$boundary\"\r\n";
$header .= "\r\n";
//--------------------------------------------------
// Construction du message proprement dit
//--------------------------------------------------
// Pour le cas, où le logiciel de mail du destinataire
// n'est pas capable de lire le format MIME de cette version
// Il est de bon ton de l'en informer
// REM: Ce message n'apparaît pas pour les logiciels sachant lire ce format
$msg = "Je vous informe que ceci est un message au format MIME 1.0
multipart/mixed.\r\n";
//---------------------------------
// 1ère partie du message
// Le texte
//---------------------------------
// Chaque partie du message est séparé par une frontière
$msg .= "--$boundary\r\n";
// Et pour chaque partie on en indique le type
$msg .= "Content-Type: text/plain; charset=\"iso-8859-1\"\r\n";
// Et comment il sera codé
$msg .= "Content-Transfer-Encoding:8bit\r\n";
// Il est indispensable d'introduire une ligne vide entre l'entête et le texte
$msg .= "\r\n";
// Enfin, on peut écrire le texte de la 1ère partie
$msg .= $contenu ;
$msg .= "\r\n";
//---------------------------------
// 2nde partie du message
// Le fichier
//---------------------------------
// Tout d'abord lire le contenu du fichier
if ( ! empty($joint)) {
$namefile = $_FILES['joint']['name'];
$filetmp = $_FILES['joint']['tmp_name'];
$filetype = $_FILES['joint']['type'];
$fp = fopen($filetmp, "rb" );
$attachment = fread($fp, filesize($filetmp));
fclose($fp);
// puis convertir le contenu du fichier en une chaîne de caractère
// certe totalement illisible mais sans caractères exotiques
// et avec des retours à la ligne tout les 76 caractères
// pour être conforme au format RFC 2045
$attachment = chunk_split(base64_encode($attachment));
// Ne pas oublier que chaque partie du message est séparé par une frontière
$msg .= "--$boundary\r\n";
// Et pour chaque partie on en indique le type
$msg .= "Content-Type: $filetype; name=\"$filetmp\"\r\n";
// Et comment il sera codé
$msg .= "Content-Transfer-Encoding: base64\r\n";
// Petit plus pour les fichiers joints
// Il est possible de demander à ce que le fichier
// soit si possible affiché dans le corps du mail
$msg .= "Content-Disposition: inline; filename=\"$namefile\"\r\n";
// Il est indispensable d'introduire une ligne vide entre l'entête et le texte
$msg .= "\r\n";
// C'est ici que l'on insère le code du fichier lu
$msg .= $attachment . "\r\n";
$msg .= "\r\n\r\n";
// voilà, on indique la fin par une nouvelle frontière
$msg .= "--$boundary--\r\n";
$destinataire = "dahiraouest <postmaster@toubaouest.fr>";
$expediteur = "dahiraouest <postmaster@toubaouest.fr>";
$reponse = $expediteur;
$Fnm = "email.txt";
$inF = fopen($Fnm,"r");
while (!feof($inF)) {
$destinataire .= fgets($inF, 4096) . ",";
}
/***********************************************************/
if(mail($destinataire, $objet, $msg,"Reply-to: $reponse\r\nFrom: $expediteur\r\n".$header))
{
echo' Votre message a été envoyé avec succés ' ;
}
else {
echo' Votre message n\'a pas été envoyé ' ;
}
}
else{
/*$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$headers .= 'To: dahiraouest <postmaster@toubaouest.fr>' . "\r\n";
$headers .= 'From: dahiraouest <postmaster@toubaouest.fr>' . "\r\n";*/
$destinataire = "dahiraouest <postmaster@toubaouest.fr>";
$expediteur = "dahiraouest <postmaster@toubaouest.fr>";
$reponse = $expediteur;
$Fnm = "email.txt";
$inF = fopen($Fnm,"r");
while (!feof($inF)) {
$destinataire .= fgets($inF, 4096) . ",";
}
if(mail($destinataire, $objet, $contenu, "Reply-to: $reponse\r\nFrom: $expediteur\r\n"
.$header))
{
echo' Votre message a été envoyé avec succés ' ;
$Fnm = "email.txt";
$inF = fopen($Fnm,"r");
while (!feof($inF)) {
mail(fgets($inF, 4096), $objet, $contenu,$header) ;
}
}
else {
echo' Votre message n\'a pas été envoyé ' ;
}
}
?>
Configuration: Windows XP
Firefox 2.0.0.12