Writeexcel et lotus

sidf Messages postés 1216 Date d'inscription mardi 20 décembre 2005 Statut Membre Dernière intervention 18 octobre 2012 - 24 avril 2008 à 20:28
sidf Messages postés 1216 Date d'inscription mardi 20 décembre 2005 Statut Membre Dernière intervention 18 octobre 2012 - 28 avril 2008 à 09:41
bonjour à tous

j'utilise (depuis un moment deja) la classe writeexcel et php pour générer et envoyer automatiquement des fichiers excel
en pièce jointe via la fonction mail()
Ca marche plutot très bien, mais un client utilise lotus notes et reçoit le mail sans pièce jointe,
et avec le code illisible du fichier inclus dans le corps du mail

pour info, si j'envoie manuellement le fichier en pièce jointe via outlook, ça marche
ce serait donc le code d'envoi automatique qui ne fonctionne pas
Devrais je changer les headers d'envoi ?
(inutile de dire que le client n'a pas l'intention de changer sa config)

si quelqu'un a une piste, merci d'avance

4 réponses

malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
25 avril 2008 à 08:27
Hello,

ça n'a aucun rapport avec WriteExcel, c'est ta façon de générer les en-têtes du mail qui n'est pas correcte.
Il nous faudrait donc voir ces en-têtes pour pouvoir essayer de t'aider.
0
sidf Messages postés 1216 Date d'inscription mardi 20 décembre 2005 Statut Membre Dernière intervention 18 octobre 2012 5
25 avril 2008 à 10:02
bonjour
merci pour ta reponse
voila les entetes qui marchent pour tous les fichiers que j'envoie
les variables en majuscules sont récupérées dans une base de données

//-----------------------------------------------
//GENERE LA FRONTIERE DU MAIL ENTRE TEXTE ET HTML
//----------------------------------------------
$frontiere = '-----=' . md5(uniqid(mt_rand()));
//-----------------------------------------------
// HEADERS DU MAIL
//-----------------------------------------------
$headers = 'From: "Société <'.$EXP.'>'."\n";
$headers .= 'Return-Path: <'.$reponse.'>'."\n";
$headers .= 'MIME-Version: 1.0'."\n";
$headers .= 'Content-Type: multipart/mixed; boundary="'.$frontiere.'"';
//-----------------------------------------------
//MESSAGE TEXTE
//-----------------------------------------------
$mail = 'This is a multi-part message in MIME format.'."\n\n";
$mail .= '--'.$frontiere."\n";
$mail .= 'Content-Type: text/plain; charset="iso-8859-1"'."\n";
$mail .= 'Content-Transfer-Encoding: 8bit'."\n\n";
$mail .= $MESSAGE."\n\n";
$mail .= '--'.$frontiere."\n";
//-----------------------------------------------
//  FORMAT de fichier
//-----------------------------------------------
if($FORMAT=='CSV' || $FORMAT=='XLS')
{$mail.= "Content-Type: text/vnd.ms-excel; name=$FICHIER"."\n";}
if($FORMAT=='TXT')
{$mail.= "Content-Type: text/plain; name=$FICHIER"."\n";}


$mail.= "Content-Transfer-Encoding: base64\r\n";
$mail.= "Content-Disposition:attachement; filename=$FICHIER"."\n\n";
$mail.= chunk_split(base64_encode(file_get_contents($CHEMIN.$FICHIER)))."\n";
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
25 avril 2008 à 18:38
mets des \r\n à la place de tes \n et réessaye sous Lotus, pour voir.
0
sidf Messages postés 1216 Date d'inscription mardi 20 décembre 2005 Statut Membre Dernière intervention 18 octobre 2012 5
28 avril 2008 à 09:41
bonjour et merci pour ta réponse malalam,
j'ai remplacé tous les \n par \r\n

sans succès, le fichier est toujours illisible mais il semblerait qu'il soit bien en pièce jointe cette fois.  je te joins le code mis à jour

//-----------------------------------------------
//GENERE LA FRONTIERE DU MAIL ENTRE TEXTE ET HTML
//----------------------------------------------
$frontiere = '-----=' . md5(uniqid(mt_rand()));
//-----------------------------------------------
// HEADERS DU MAIL
//-----------------------------------------------
$headers = 'From: '."\r\n";
$headers .= 'Return-Path: '."\r\n";
$headers .= 'MIME-Version: 1.0'."\r\n";
$headers .= 'Content-Type: multipart/mixed; boundary="'.$frontiere.'"';
//-----------------------------------------------
//MESSAGE TEXTE
//-----------------------------------------------
$mail = 'This is a multi-part message in MIME format.'."\r\n\r\n";
$mail .= '--'.$frontiere."\r\n";
$mail .= 'Content-Type: text/plain; charset="iso-8859-1"'."\r\n";
$mail .= 'Content-Transfer-Encoding: 8bit'."\r\n\r\n";
$mail .= $MESSAGE."\r\n\r\n";
$mail .= '--'.$frontiere."\r\n";
//-----------------------------------------------
//  FORMAT de fichier
//-----------------------------------------------
if($FORMAT=='CSV' || $FORMAT=='XLS')
{$mail.= "Content-Type: text/vnd.ms-excel; name=$FICHIER"."\r\n";}
if($FORMAT=='TXT')
{$mail.= "Content-Type: text/plain; name=$FICHIER"."\r\n";}


$mail.= "Content-Transfer-Encoding: base64\r\n";
$mail.= "Content-Disposition:attachement; filename=$FICHIER"."\r\n\r\n";
$mail.= chunk_split(base64_encode(file_get_contents($CHEMIN.$FICHIER)))."\r\n";


 
0