Bonsoir,
Je fais un script permettant d'envoyer le contenu d'un formulaire web par e-mail, avec un fichier JPEG attache.
Etant donne que je n'y connais rien en encodage de fichier attache, j'ai pris un script libre trouve sur internet.
Mais il y a un probleme : lors de la reception du mail, le fihcier attache ne peut plus etre ouvert. Curieusement, sa taille (en bytes) est devenue plus GRANDE qu'avant l'envoi par mail, et Photoshop m'affiche le message d'erreur "la longueur d'un segment de marqueur JPEG est trop courte (le fichier est peut-etre tronque ou incomplet)".
Auriez-vous une idee de ce qui peut provoquer cela dans le code PHP que j'utilise ? Je remplace du texte par XXXXXXXX pour preserver l'anonymat de l'utilisateur.
Merci !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30 $random_hash = md5(date('r', time())); $headers = "From: ".$from."\r\nReply-To: ".$from.""; $headers .= "\r\nContent-Type: multipart/mixed; boundary=\"PHP-mixed-".$random_hash."\""; $attachment = chunk_split(base64_encode(file_get_contents("/XXXX chemin XXXXXX/".$photo1))); ob_start(); ?> --PHP-mixed-<?php echo $random_hash; ?> Content-Type: multipart/alternative; boundary="PHP-alt-<?php echo $random_hash; ?>" --PHP-alt-<?php echo $random_hash; ?> Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit <?php echo "XXXXXXXX texte contenu dans le mail XXXXXXXXXX"; ?> --PHP-alt-<?php echo $random_hash; ?>-- --PHP-mixed-<?php echo $random_hash; ?> Content-Type: image/jpeg; name="<?php echo $photo1; ?>" Content-Transfer-Encoding: base64 Content-Disposition: attachment <?php echo $attachment; ?> --PHP-mixed-<?php echo $random_hash; ?>-- <?php $message = ob_get_clean(); $mail_sent = @mail( $to, $subject, $message, $headers );
Partager