Envoie de fichier joint par e-mail

mic54800
WRInaute discret
WRInaute discret
 
Messages: 61
Inscription: 20 Juil 2008

Envoie de fichier joint par e-mail

Message le Sam Mar 27, 2010 16:13

Bonjour,
J'utilise un script PHP trouve sur un site afin de joindre un fichier par mail.
Le problème est que le script joint le fichier sans tenir compte des retours à la ligne (ce qui s'avère plutôt embêtant étant donné qu'il s'agit d'un fichier contenant le contenu de ma BDD).
Comment pourrais-je faire pour que ce script prenne en compte les retour à la ligne ?

(Le fichier envoyé est un fichier .txt)

Code: Tout sélectionner
function mailfichier($from, $to, $subject, $body, $nomfichier)
{
   // generation du separateur, une chaine aleatoire fait l'affaire
   $bound = '------------'.md5(uniqid('mic'));

   $entete = 'From: '.$from."\n"
   .'MIME-Version: 1.0'."\n"
   .'Content-Type: multipart/mixed;'."\n"
   .' boundary="'.$bound.'"';

   $body = 'This is a multi-part message in MIME format.'."\n"
   .'--'.$bound."\n"
   .'Content-Type: text/plain; charset=ISO-8859-1'."\n"
   .'Content-Transfer-Encoding: 7bit'."\n\n"
   .$body
   ."\n\n"
   .'--'.$bound."\n"
   .'Content-Type: text/plain;'."\n".' name="'.basename($nomfichier).'"'."\n"
   .'Content-Transfer-Encoding: base64'."\n"
   .'Content-Disposition: attachment;'."\n".' filename="'.basename($nomfichier).'"'."\n\n"
   .chunk_split(base64_encode(file_get_contents($nomfichier)))
   .'--'.$bound.'--'."\n";

   return @mail($to, $subject, $body, $entete);
}


Je vous remercie par avance pour votre aide !

Mic54800

mic54800
WRInaute discret
WRInaute discret
 
Messages: 61
Inscription: 20 Juil 2008

Re: Envoie de fichier joint par e-mail

Message le Lun Mar 29, 2010 17:30

Petit UP car je n'ai toujours pas trouvé de solution et sans ça, ma sauvegarde n'aura pas lieu =(


OTP
Modérateur
Modérateur
 
Messages: 19532
Inscription: 16 Déc 2005

Re: Envoie de fichier joint par e-mail

Message le Lun Mar 29, 2010 17:47

(HS : comment a été créé le fichier contenant la BDD ?)

mic54800
WRInaute discret
WRInaute discret
 
Messages: 61
Inscription: 20 Juil 2008

Re: Envoie de fichier joint par e-mail

Message le Lun Mar 29, 2010 17:48

Il est créé par un script perso qui enregistre le tout dans un fichier .txt


OTP
Modérateur
Modérateur
 
Messages: 19532
Inscription: 16 Déc 2005

Re: Envoie de fichier joint par e-mail

Message le Lun Mar 29, 2010 17:52

Ok, merci.


UsagiYojimbo
WRInaute accro
WRInaute accro
 
Messages: 8575
Inscription: 23 Nov 2005

Re: Envoie de fichier joint par e-mail

Message le Lun Mar 29, 2010 18:37

Quand tu ouvres ton fichier texte avant de l'envoyer par mail, est-ce que les retours à la ligne te semble ok ?

Je pense que le souci vient du fichier, pas du script d'envoi, qui lui n'a aucune raison de modifier ton fichier.

mic54800
WRInaute discret
WRInaute discret
 
Messages: 61
Inscription: 20 Juil 2008

Re: Envoie de fichier joint par e-mail

Message le Lun Mar 29, 2010 21:50

Le fichier .txt est ok, les retours à la ligne sont fait, il n'y a rien à dire dessus.
Le problème vient bel et bien du script d'envoi du fichier par e-mail ...
Tu peux tenter par toi même en essayant d'envoyer un fichier factice ..
Aurais-tu une idée du problème ?


UsagiYojimbo
WRInaute accro
WRInaute accro
 
Messages: 8575
Inscription: 23 Nov 2005

Re: Envoie de fichier joint par e-mail

Message le Lun Mar 29, 2010 22:32

Je ne code plus mes envois d'email de cette façon depuis pas mal de temps déjà. J'utilise Phpmailer qui fait ça très bien pour moi :-)


spout
WRInaute accro
WRInaute accro
 
Messages: 4378
Inscription: 14 Mai 2003

Re: Envoie de fichier joint par e-mail

Message le Lun Mar 29, 2010 22:58

+1 pour PHPMailer: http://phpmailer.worxware.com/
Et aussi Swift Mailer (PHP5): http://swiftmailer.org/


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité