[PHP] Mail avec fichiers joints, corrompus !

vensatis Messages postés 16 Date d'inscription   Statut Membre Dernière intervention   -  
kilian Messages postés 8732 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,
Je suis depuis quelques heures sur un script qui doit envoyer un mail avec un fichier joint. Tout marche a merveille, je reçois le fichier avec la bonne extension mais lorsque je désire l'ouvrir, impossible !

Et cela quelque soit le fichier, Word, Image, Texte... En local ou en ligne... Incompréhensible.

Si vous désirez voir la source n'hésitez pas.
A voir également:

5 réponses

kilian Messages postés 8732 Date d'inscription   Statut Modérateur Dernière intervention   1 526
 
Salut,

Oui, montre voir la source...
0
vensatis Messages postés 16 Date d'inscription   Statut Membre Dernière intervention  
 
Et bien en faite cela semble venir de mon serveur SMTP. J'ai testé en ligne, il marche correctement avec pas mal de fichiers mais il ne supporte pas les .doc...

Voilà une partie de la source :

if (is_uploaded_file($fileatt)) {
 // Read the file to be attached ('rb' = read binary)
 $file = fopen($fileatt,'rb');
 $data = fread($file,filesize($fileatt));
 fclose($file);


 // Generate a boundary string
 $semi_rand = md5(time());
 $mime_boundary = "==Multipart_Boundary_x{$semi_rand}x";
 
 // Add the headers for a file attachment
 $headers .= "\nMIME-Version: 1.0\n" .
             "Content-Type: multipart/mixed;\n" .
             " boundary=\"{$mime_boundary}\"";


 // Add a multipart boundary above the plain message
 $message = "This is a multi-part message in MIME format.\n\n" .
            "--{$mime_boundary}\n" .
            "Content-Type: text/plain; charset=\"iso-8859-1\"\n" .
            "Content-Transfer-Encoding: 7bit\n\n" .
            $message . "\n\n";


 // Base64 encode the file data
 $data = chunk_split(base64_encode($data));


 // Add file attachment to the message
 $message .= "--{$mime_boundary}\n" .
             "Content-Type: {$fileatt_type};\n" .
             " name=\"{$fileatt_name}\"\n" .
             "Content-Disposition: attachment;\n" .
             " filename=\"{$fileatt_name}\"\n" .
             "Content-Transfer-Encoding: base64\n\n" .
             $data . "\n\n" .
             "--{$mime_boundary}--\n";
}
0
kilian Messages postés 8732 Date d'inscription   Statut Modérateur Dernière intervention   1 526
 
Tu es sûr que tu peux rajouter des tubes | pour le nom, le type du fichier etc.... ?
0
vensatis Messages postés 16 Date d'inscription   Statut Membre Dernière intervention  
 
Ah je sais pas, la source n'est pas de moi. Elle fonctionne correctement cependant. Sauf pour les fichiers word.

Je vais autoriser uniquement le .zip et sa ira hein ! :)

Merci à toi
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
kilian Messages postés 8732 Date d'inscription   Statut Modérateur Dernière intervention   1 526
 
Comme tu veux....
0