Pb de fichier Excel joint dans mail
Posté : 19 août 2009, 16:32
Bonjour à Tous,
Je cherche à envoyer des mails avec fichier joint Excel.
Cela fonctionne bien, mais il y a un souci lors de l'ouverture des xls:
"Le format du fichier que vous tentez d'ouvrir .... est différent de celui spécifié par l'extension de fichier..."
Pas plus génant que çà, bien sur, mais mon problème est que je voudrais faxer directement ce fichier en l'envoyant directement par mail à l'Ecofax d'OVH, et que bien sur
l'écofax refuse l'ouverture du fichier. Et donc pas de fax...
Je colle ici un premier extrait du script :
J'ai déjà bien cherché, fait des modifs, mais rien ne marchait mieux. Et ne suis pas très compétent en ces lieux...
Merci d'avance, et bon courage à tous les besogneux du mois d'août.
Je cherche à envoyer des mails avec fichier joint Excel.
Cela fonctionne bien, mais il y a un souci lors de l'ouverture des xls:
"Le format du fichier que vous tentez d'ouvrir .... est différent de celui spécifié par l'extension de fichier..."
Pas plus génant que çà, bien sur, mais mon problème est que je voudrais faxer directement ce fichier en l'envoyant directement par mail à l'Ecofax d'OVH, et que bien sur
l'écofax refuse l'ouverture du fichier. Et donc pas de fax...
Je colle ici un premier extrait du script :
function creer_notification($database_date, $valueID, $delimiteur) {
//on affiche le detail de la notification pour l'hotel concerné.
//on affiche le detail des passager pris pour chaque hotel
$rs = getrs(msp_notification_affiche($database_date, $valueID) );
$rs2 = getrs(msp_get_info($valueID));
$enreg = mysql_fetch_array($rs2);
$agence = $enreg['agence'];
$hotel = $enreg['origine'];
$img = $enreg['url'];
$cols = 8; //number of colons.
$dateCol = -1; // content the number of the colon who got a date to print.
$dateCol1 = 0; // content the number of the colon who got a date to print.
$dateCol2 = 1; // content the number of the colon who got a date to print.
$coldesc = array("Recogida", "h.Lleg", "Sal. Vuelo", "Cia", "Vuelo", "Apt Des", "Nombre", "Pers");
$colsort = array("pickup", "heures", "aeroport_origine", "compagnie", "num_vol", "destination", "noms", "num_passager");
$colname = array("pickup", "heures", "aeroport_origine", "compagnie", "num_vol", "destination", "noms", "num_passager");
//on transforme la date base de donnée en date francaise :
$form_date = english_to_french_date($database_date);
//on prepare le texte pour le mail :
$phrase = "Ce mail est au format MIME 1.0 multipart/mixed.\n";
$phrase = $phrase . "--$delimiteur\n";
$phrase = $phrase . "Content-Type: text/plain; charset=\"iso-8859-1\"\n";
$phrase = $phrase . "Content-Transfer-Encoding:8bit\n";
$phrase = $phrase . "\n";
$phrase = $phrase . " Ce mail contient la notification en pièce jointe au format Excel\n";
$phrase = $phrase . "\n";
//on lit le fichier image pour l'encoder :
$fp = fopen($img, "rb");
$img_attache = fread($fp, filesize($img));
fclose($fp);
/*
//on encode l'image
$img_attache = chunk_split(base64_encode($img_attache));
//on insert l'image dans le fichier
$phrase = $phrase . "--$delimiteur\n";
$phrase = $phrase . "Content-Type: application/octet-stream; name=\"$img\"\n";
$phrase = $phrase . "Content-Transfer-Encoding: base64\n";
$phrase = $phrase . "Content-ID: <image1>\n";
$phrase = $phrase . "\n";
$phrase = $phrase . $img_attache . "\n";
$phrase = $phrase . "\n\n";
$phrase = $phrase . "--$delimiteur\n";
*/
$fichier = "<HTML>
<HEAD>
<meta http-equiv=\"Content-Type\" content=\"text/html; charset=iso-8859-1\">
<title>::: NOTIFICATIONS :::</title>";
//<link href=\"../style.css\" rel=\"stylesheet\">
//<link href=\"../print.css\" rel=\"stylesheet\" type=\"text/css\" media=\"print\"/>
$fichier = $fichier . "</HEAD>
Et un p'tit dernier...$fichier = $fichier . "</div>
</BODY>
</HTML>\r\n";
$fichier = $fichier . "\n";
$nom = $database_date . "_notification.xls";
//on encode le fichier
$fichier = chunk_split(base64_encode($fichier));
//on insert le fichier
$phrase = $phrase . "--$delimiteur\n";
$phrase = $phrase . "Content-Type: $mime; name=\"$nom\"\n";
$phrase = $phrase . "Content-Transfer-Encoding: base64\n";
$phrase = $phrase . "Content-Disposition: attachment; filename=\"$nom\"\n";
$phrase = $phrase . "\n";
$phrase = $phrase . $fichier . "\n";
$phrase = $phrase . "\n\n";
$phrase = $phrase . "--$delimiteur\n";
return $phrase;
}
//*****************************************************************************************
?>
Voilou, si une bonne âme pouvait me dire ce qui cloche ( c'est une p'tite pétouille, nan? ), ca serait génial.J'ai déjà bien cherché, fait des modifs, mais rien ne marchait mieux. Et ne suis pas très compétent en ces lieux...
Merci d'avance, et bon courage à tous les besogneux du mois d'août.