Probleme mail avec PJ en php

jeremy -  
 jeremy -
Bonjour,

J'ai un léger soucis dans mon envoi de mail automatique avec PJ. Je m'explique j'ai un formulaire, lors de l'envoi je créé un fichier appelé form.xls dans lequel j'écris grâce à une boucle for les résultats que je veux, l'écriture et la génération du xls se passe parfaitement.

Je souhaite ensuite envoyer ce fichier par PJ c'est là que ça coince car dans le mail j'ai une PJ au format txt avec ecrit:
Content-Type: application/msword; name="form.xls"

Content-Transfer-Encoding: base64

Content-Disposition: attachment; filename="form.xls"


et: Content-Type: text/plain; charset=ISO-8859-1 apparait dans le message principal.

Voici le code:

//création et envoi du mail
$boundary='frontiere';
//En-têtes du mail
$headers="From: Donotreply@domaine.fr\r\n
MIME-Version: 1.0\r\n
Content-Type: multipart/mixed; boundary=\"$boundary\"\r\n\n";

//Corps du mail en commençant par le message principal
$body="--". $boundary ."\n
Content-Type: text/plain; charset=ISO-8859-1\r\n\n
Message principal du mail.\n\n";

//Pièce jointe, on va dire que notre fichier s'appelle bidule.doc et qu'il se situe dans le répertoire courant

$fichier=file_get_contents('./form.xls');
//n utilise aussi chunk_split() qui organisera comme il faut l'encodage fait en base 64 pour se conformer aux standards
$fichier=chunk_split( base64_encode($fichier) );

//Écriture de la pièce jointe
$body = $body . "--" .$boundary ."\n
Content-Type: application/msword; name=\"form.xls\"\r\n
Content-Transfer-Encoding: base64\r\n
Content-Disposition: attachment; filename=\"form.xls\"\r\n\n
$fichier";

Je me suis aidé du cours de ce site, j'espère que vous allez pouvoir m'aider,

Merci
A voir également:

2 réponses

jeremy
 
Je viens d'essayer avec la classe mimi, j'ai mon mail avec la piece jointe qui cette fois-ci est bien un fichier excel mais il n'y a rien d'écrit alors que si je vais voir le fichier dans mon répertoire, les lignes sont bien écrite.
J'espère que vous pourrez m'aider, je vous mets le code:

$fanniv = fopen ("anniversaire.xls", a);
for ( $j = 0; $j < $nombrelignes; $j++)
{

if ( $_POST[$i] != NULL )
{
fputs ($fanniv, $dtAnniv);
fputs ($fanniv, "\n");
}
}

$mail = new mime_mail();
$mail->to = "mimi@free.fr"; // Adresse email de reception
$mail->subject = "Test"; // Sujet
$mail->body = "Ceci est un test."; // Corps du message
$mail->from = "DoNotReply@monDomaine.fr"; // Adresse email de l'expediteur (optionnel)
$mail->headers = "Date: "; // Entetes supplementaires (optionnel)
$mail->attach("$fanniv", "anniversaire.xls"); // fichier attache (optionnel)
// envoi du message

$mail->send();
fclose($fanniv);
0
jeremy
 
Je précise ce qui se passe: dans le mail en lui même rien ne s'affiche, ni dans la pièce jointe, donc ça peut venir de la classe utilisée car celle que j'ai trouvé est visiblement une classe mime modifiée?

Je n'arrive pas à telecharger la classe mime originale sur leur site et je n'en ai pas trouvé d'autres, si vous avez un lien ou si vous pouviez me copier la classe ici que je puisse l'utiliser?

Merci,
0