Forum avec PJ vide
Posté : 13 mars 2013, 13:35
Coucou à tous,
Aujourd'hui je m'en remets à votre expertise car je bloque sur un souci.
En effet, j'ai codé un p'tit formulaire afin que les visiteurs m'envoient un document.
Ainsi, j'ai bien mon form, mon script d'envoi de mail... et tout cela fonctionne parfaitement sur Gmail.
Un ami sous Thunderbird (ou autres, c'est pareil) désirant récupérer mon code, je lui mets en place sans le moindre problème.
On lance un test et ... le mail arrive complet, avec la pièce jointe... mais celle-ci est vide (taille inconnue ou alors 0.0 ko)
Bref, je ne comprends pas comment un code peut parfaitement fonctionner sur une boite mail ... et pas du tout sur les autres.
Merci d'avance
Aujourd'hui je m'en remets à votre expertise car je bloque sur un souci.
En effet, j'ai codé un p'tit formulaire afin que les visiteurs m'envoient un document.
Ainsi, j'ai bien mon form, mon script d'envoi de mail... et tout cela fonctionne parfaitement sur Gmail.
Un ami sous Thunderbird (ou autres, c'est pareil) désirant récupérer mon code, je lui mets en place sans le moindre problème.
On lance un test et ... le mail arrive complet, avec la pièce jointe... mais celle-ci est vide (taille inconnue ou alors 0.0 ko)
Bref, je ne comprends pas comment un code peut parfaitement fonctionner sur une boite mail ... et pas du tout sur les autres.
Code : Tout sélectionner
$nom = $_POST['nom'];
$expediteur = $_POST['mail'];
$cap = $_POST['cap'];
$to = 'la bonne adresse mail';
$sujet = 'le sujet';
// clé aléatoire de limite
$fontiere = md5(uniqid(microtime(), TRUE));
// Headers
$headers = 'From: '.$nom.' <'.$expediteur.'>'."\n";
$headers .= 'Mime-Version: 1.0'."\n";
$headers .= 'Content-Type: multipart/mixed;boundary='.$fontiere."\n";
$headers .= "\r\n";
// Message
// Texte
$msg = '--'.$fontiere."\n";
$msg .= 'Content-type:text/plain;charset=utf-8'."\n";
$msg .= 'Content-transfer-encoding:8bit'."\n";
$msg .= '-'."\n\n";
$msg .= 'Message :'."\n\n";
$msg .= '***************************'."\n\n";
$msg .= utf8_decode($mess)."\n\n";
$msg .= '***************************'."\n\n";
$msg .= 'Expediteur : '.$nom.' - '.$expediteur."\n";
$msg .= '***************************'."\n\n";
$msg .= 'ATTENTION : Pièce jointe non vérifiée - Soyez vigilant !'."\n";
// Pièce jointe
if (isset($_FILES['attach'])) {
$tmp_name= $_FILES['attach']['tmp_name'];
$name= $_FILES['attach']['name'];
$size= $_FILES['attach']['size'];
$type= $_FILES['attach']['type'];
$erreur= $_FILES['attach']['error'];
$uploadpath="uppj/";
move_uploaded_file($tmp_name,$uploadpath.$name);
$path = $uploadpath.$name;
$handle = fopen($path, 'rb');
$content = fread($handle, $size);
fclose($handle);
$content = chunk_split(base64_encode($content));
$msg .= '--'.$fontiere."\r\n";
$msg .= 'Content-type:'.$type.';name='.$name."\r\n";
$msg .= 'Content-transfer-encoding:base64'."\r\n";
$msg .= $content."\r\n";}
// Fin
$msg .= '--'.$fontiere."\r\n";
// Function mail()
if ($cap == '5') {mail($to, $sujet, $msg, $headers);}
/* gestion erreur ET suppression PJ stockée temporairement sur serveur */
else {echo '<script>document.location="index.php?p=ok"</script>';}
echo '<script>document.location="index.php?p=no"</script>';