Pb de fichier Excel joint dans mail

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Pb de fichier Excel joint dans mail

Re: Pb de fichier Excel joint dans mail

par CityT » 20 août 2009, 17:58

Merci à Toi de te pencher sur mon souci.

J'avais essayé la modif suivante:
$phrase = $phrase . "Content-Type: application/vnd.ms-excel; name=\"$nom\"\n";
Mais c'était pas plus efficace...
Ca m'énerve. Et avec cette chaleur d'aujourd'hui, je ne vois plus rien.... :oops:

Bien Cordialement

Re: Pb de fichier Excel joint dans mail

par Ryle » 20 août 2009, 14:04

Dans ton code :
 $phrase = $phrase . "Content-Type: $mime; name=\"$nom\"\n";
Quelle est la valeur de $mime ?

Celle-ci devrait pas correspondre au type mime des fichiers excels, et s'il n'est pas ou mal renseigné, il est probable que tu ais cette erreur... :)

Pb de fichier Excel joint dans mail

par CityT » 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 :
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.