Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem z wysłaniem załącznika w mailu
Forum PHP.pl > Forum > PHP
janasz
Witajcie,
nie jestem programistą więc moge wyrażać się niekonkretnie, za co z góry przepraszam. Mam taki problem. Za pomocą poniższego kodu chciałbym wysłać plik .doc, jako załącznik. Plik jest na serwerze. W mailu, który dostaje plik chyba jest ale zapisany w postaci ciągu znaczków :

pcEAW4AVBAAA8BK/AAAAAAAAEAAAAAAACAAABh0AAA4AYmpiaqz6rPoAAAAAAAAAAAAAAAAAAAAA
AAAVBBYA+y8AAM6QAQDOkAEASgIAAAAAAAAeAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAD//w8AAAAA
AAAAAAD//w8AAAAAAAAAAAD//w8AAAAAAAAAAAAAAAAAAAAAALcAAAAAAKwQAAAAAAAArBAAAPod
AAAAAAAA+h0AAAAAAAD6HQAAAAAAAPodAAAAAAAA+h0

itd. Myślę, że to coś z MIME, ale nie wiem gdzie popełniam błąd. Prosze o pomoc!


  1. <?php
  2. $to = 'myMail@gmail.com';
  3. $subject = 'Wiadomość ze strony';
  4. $email = $_POST['email'];
  5.  
  6. $files['0']['path'] = $_FILES['plik']['path'];
  7. $files['0']['mime'] = $_FILES['plik']['mime'];
  8. $files['0']['name'] = $_FILES['plik']['name'];
  9. $files['0']['tmpname'] = $_FILES['plik']['tmp_name'];
  10. $filename = $_FILES['plik']['name'];
  11. $filetype = substr($filename, -3, 3);
  12. $upload = move_uploaded_file($files['0']['tmpname'], "readwrite/formularz.doc");
  13. if($upload) {
  14.  
  15. if($filetype == 'doc') {
  16. /// wysylamy maila
  17. $fileatt = "readwrite/formularz.doc";
  18. $fileatttype = "multipart/mixed";
  19. $fileattname = "formularz.doc";
  20. $file = fopen($fileatt , 'rb' );
  21. $data = fread( $file, filesize( $fileatt ) );
  22. fclose( $file );
  23. $semi_rand = md5(time());
  24. $mime_boundary = "==Multipart_Boundary_x{$semi_rand}x";
  25.  
  26. $headers .= "\nMIME-Version: 1.0\n" .
  27. "Content-Type: multipart/mixed;\n" .
  28. " boundary=\"{$mime_boundary}\"";
  29.  
  30. $message .= "This is a multi-part message in MIME format.\n\n" .
  31. "--{$mime_boundary}\n" .
  32. "Content-Type:text/html; charset=\"iso-8859-1\"\n" .
  33. "Content-Transfer-Encoding: 7bit\n\n" .
  34. $message . "\n\n";
  35.  
  36. $data = chunk_split(base64_encode($data));
  37.  
  38. $message .= "--{$mime_boundary}\n" .
  39. "Content-Type: {$fileatt_type};\n" .
  40. " name=\"{$fileatt_name}\"\n" .
  41. //"Content-Disposition: attachment;\n" .
  42. //" filename=\"{$fileatt_name}\"\n" .
  43. "Content-Transfer-Encoding: base64\n\n" .
  44. $data . "\n\n" .
  45. "--{$mime_boundary}--\n";
  46.  
  47.  
  48.  
  49. $mail_sent = @mail( $to, $subject, $message, $headers );
  50. echo $mail_sent ? "Mail sent" : "Mail failed";
  51.  
  52. /// wysylamy maila
  53. } // if filetype .doc
  54. } // if upload
  55. ?>
  56.  
shine
Uzyj klasy phpmailer nie bedziesz mial takich problemow
janasz
dzięki!
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.