5568 sujets

Sémantique web et HTML

Bonjour, j'ai un script pour evoyer des mails avec des pièces jointe,

ce script fonctionne, mais je ne peut pas ouvrir les pièces qui sont joint au mail

j'ai l erreur
adobe, n'a pas pu ouvir le fichier PDF car il est endomager ou il a été envoye par une pièce jointe et qui n'a pas été encodé correctement par exemple

ce sont des fichiers qui sont sur le serveur avec un connections a la BDD

voici ce que j'ai fait, je ne voit pas l'erreur
// envoie du mail avec les pièce jointe des diagnostics
    $sql_diag = 'SELECT diag_pdf FROM diagnostique_pdf WHERE num_diag_pdf = "'.$_GET['diag'].'"';
    $req_diag = mysql_query($sql_diag) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
    while($data_diag = mysql_fetch_assoc($req_diag)){
        $files[] = $data_diag['diag_pdf'];
    }
    // Email:
    $to = "info@*******";
    $from = "info@****.com";
    $subject ="Diagnostics";
    $message = "My message";
    $headers = "From: $from";
     
    // boundary
    $semi_rand = md5(time());
    $mime_boundary = "==Multipart_Boundary_x{$semi_rand}x";
     
    // headers for attachment
    $headers .= "\nMIME-Version: 1.0\n" . "Content-Type: multipart/mixed;\n" . " boundary=\"{$mime_boundary}\"";
 
    // multipart boundary
    $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";
    $message .= "--{$mime_boundary}\n";
     
    // preparing attachments
    for($x=0;$x<count($files);$x++){
        $file = fopen($files[$x],"rb");
        $data = fread($file,filesize($files[$x]));
        fclose($file);
        $data = chunk_split(base64_encode($data));
        $message .= "Content-Type: {\"application/octet-stream\"};\n" . " name=\"$files[$x]\"\n" .
        "Content-Disposition: attachment;\n" . " filename=\"$files[$x]\"\n" .
        "Content-Transfer-Encoding: base64\n\n" . $data . "\n\n";
        $message .= "--{$mime_boundary}\n";
    }  
     
    // send
    $ok = @mail($to, $subject, $message, $headers);
    if ($ok) {
        echo "<p>mail sent to $to!</p>";
    } else {
        echo "<p>mail could not be sent!</p>";
    }