Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Klient poczty [php], załączniki w email
KRISPI
post
Post #1





Grupa: Zarejestrowani
Postów: 30
Pomógł: 0
Dołączył: 22.11.2011

Ostrzeżenie: (0%)
-----


Problem polega na tym że napisałem klienta poczty. Mam możliwość konfiguracji konta, wysyłania i odbierania wiadomości itp.
Obecnie próbuję dodać do wiadomości załącznik. Wszystko działa poprawnie natomiast załączniki odbieram w postaci wykrzaczonej bez względu na to czy jest to plik jpg czy doc czy inny. Zawsze krzaczki. Co zrobić żeby załącznik pojawiał się w normalnej postaci? Kod wygląda tak:
  1. $nazwa_pliku=$_FILES['plik']['name'];
  2. $plik_nazwa_tmp=$_FILES['plik']['tmp_name'];
  3. //********************************************************************************
    *************
  4. // tresc listu
  5.  
  6. srand((double)microtime()*1000000);
  7. $znacznik = md5(uniqid(rand()));
  8.  
  9. // dane o odbiorcy, nadawcy
  10. $odbiorca=$do;
  11. $tytul=$temat;
  12. $nadawca=$dw;
  13. $tresclistu = $wiadomosc;
  14.  
  15. // definicja naglówków
  16. $naglowki = "From: $nadawca\n";
  17. $naglowki .= "MIME-Version: 1.0\n";
  18. $naglowki .= "Content-Type: multipart/mixed;\n";
  19. $naglowki .= "\tboundary=\"___$znacznik==\"";
  20. $naglowki .= "X-attachments: $nazwa_pliku;\n\n";
  21.  
  22. // naglówki listu
  23. $tresc="--___$znacznik==\n";
  24. $tresc .="Content-Type: text/plain; charset=\"iso-8859-2\"\n";
  25. $tresc .="Content-Transfer-Encoding: 8bit\n";
  26. $tresc .="\n$tresclistu\n";
  27.  
  28.  
  29.  
  30.  
  31.  
  32.  
  33. if (is_uploaded_file($plik_nazwa_tmp))
  34. {
  35. $tresc .="--___$znacznik==\n";
  36. $tresc .="Content-Type:" .$_FILES['plik']['type']."\n";
  37. $tresc .="Content-Disposition: attachment;\n";
  38. $tresc .=" filename=\"$nazwa_pliku\"\n";
  39. $tresc .="Content-Transfer-Encoding: base64\n\n";
  40.  
  41. $f = fopen($plik_nazwa_tmp,"rb");
  42. $dane = fread($f,filesize($plik_nazwa_tmp));
  43. fclose($f);
  44. $tresc .= chunk_split(base64_encode($dane));
  45. $tresc .="--___$znacznik==--\n";
  46. }
  47. if (mail($odbiorca,$tytul,$tresc,$naglowki)) {
  48.  
  49. echo "<p style=\"padding-bottom: 100px\">Wiadomo�� wys�ana.</p>";
  50. } else {
  51. echo "<p style=\"padding-bottom: 100px\">Wys�anie wiadomo�ci niemo�liwe.</p>";
  52. }
  53.  
  54. break;


Ten post edytował KRISPI 23.12.2012, 16:59:20
Go to the top of the page
+Quote Post
vokiel
post
Post #2





Grupa: Zarejestrowani
Postów: 2 592
Pomógł: 445
Dołączył: 12.03.2007

Ostrzeżenie: (0%)
-----


To jest klient poczty, użycie funkcji mail?

Jeśli chcesz żeby działało, a nie koniecznie musi to być od a do z Twój kod, to proponuję zapoznać się z PHPMailer lub Swift Mailer
Go to the top of the page
+Quote Post
KRISPI
post
Post #3





Grupa: Zarejestrowani
Postów: 30
Pomógł: 0
Dołączył: 22.11.2011

Ostrzeżenie: (0%)
-----


Próbowałem phpmailer załącznik się wysyła podobnie jak za pomocą kodu który umieściłem. Ale wyświetla się tak samo czyli tak jakby było w nagłówku
Content-Disposition: inline; ale cały czas jest attachment. Nie rozumiem. Jak sprawdzam tą samą poczte w Thunderbird załączniki wyświetlają się normalnie tylko w moim kliencie wyświetlają się inline??
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 16:06