Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]PHPMailer załączniki - wielkość plików
Forum PHP.pl > Forum > Przedszkole
lalas
Uzywam do wysylania emaili takiego kodu:

  1. $mail = new PHPMailer();
  2. $mail->FromName = "Dokumenty";
  3. $mail->From = "$email";
  4. $mail->AddAddress('test@test.pl');
  5. $mail->AddReplyTo("$email","Nazwa adresu zwrotnego");
  6. $mail->Subject = "Temat";
  7. $mail->IsHTML(true);
  8. $mail->Body = "$message";
  9. $mail->AddAttachment("dokumenty/$zalacznik1");
  10. $mail->AddAttachment("dokumenty/$zalacznik2");
  11. $mail->AddAttachment("dokumenty/$zalacznik3");
  12. $mail->AddAttachment("dokumenty/$zalacznik4");
  13. $mail->AddAttachment("dokumenty/$zalacznik5");
  14. $mail->AddAttachment("dokumenty/$zalacznik6");
  15. $mail->AddAttachment("dokumenty/$zalacznik7");
  16. $mail->AddAttachment("dokumenty/$zalacznik8");
  17. $mail->AddAttachment("dokumenty/$zalacznik9");
  18. $mail->AddAttachment("dokumenty/$zalacznik10");
  19.  
  20. if(!$mail->Send()) {
  21. echo "Mailer Error: " . $mail->ErrorInfo;
  22. }else print'ok';


Kiedy wysyłane są małe zdjęcia jako załączniki wszystkie 10 dochodzi bez problemu, kiedy łącznie mają więcej niż 150Kb skrypt działa tak jak trzeba, czyli wysyła niby (nie dostaje żadnych komunikatów o błędzie), a emaile nie dochodzą. Tak samo jest w przypadku kiedy chciałbym np. tylko 1 załącznik wysłać, wystarczy że zdjęcie ma więcej niż 150Kb i o emailu można zapomnieć. Sprawdzałem phpinfo to na serwerze mam:

file_uploads On
max_file_uploads 20
upload_max_filesize 64M
upload_tmp_dir no value
suhosin.upload.disallow_binary 0
suhosin.upload.disallow_elf 1
suhosin.upload.max_uploads 50
suhosin.upload.remove_binary 0
suhosin.upload.verification_script no value

może jednak ten upload_max_filesize musi być dużo większy niż 64M?, a może w samej klasie jest gdzieś zakamuflowany parametr wielkości wysyłanych załączników? Mieliście z czymś takim problem?
ber32
Witam. Spróbuj zdjęcia wysyłać tą metodą
  1. $mail->AddEmbeddedImage('images/1.jpg','1','1.jpg',"base64","image/jpeg");
lalas
Cytat(ber32 @ 9.09.2013, 12:54:13 ) *
Witam. Spróbuj zdjęcia wysyłać tą metodą
  1. $mail->AddEmbeddedImage('images/1.jpg','1','1.jpg',"base64","image/jpeg");


No i popatrz.... masz racje, nawet nie wiedziałem, ze w tej klasie rożnicują rodzaje załączników.
Co prawda przy zdjęciach większych niż 2Mb nie dochodzą emaile, ale coś już pomyślę - najwyżej zrobie ograniczenie wielkości przesyłanych zdjęć.
Dzięki wielkie za pomoc.
fate
a jaki masz memory limit?
ja musialem ustawic na 2gb gdyz wrzucam fotki <2Mb i robie z nich miniatury
lalas
Cytat(fate @ 10.09.2013, 08:59:21 ) *
a jaki masz memory limit?
ja musialem ustawic na 2gb gdyz wrzucam fotki <2Mb i robie z nich miniatury


Właśnie mi coś uzmysłowiłeś..., przecież ja nie wysyłam mailem takich dużych plików tylko wcześniej uploaduje je na serwer dopiero później wskazuje ścieżkę do miejsca w którym są pliki a one nie ważą więcej niż 150KB

no i nie jest tak różowo dzisiaj :/ robię upload klasą class.upload plik większy niż 2,2M i gdy próbuję przesłać tak duże pliki to po zakończeniu działania skryptu strona wczytuje się tylko do połowy, nie dostaje żadnego komunikatu o błędzie, plik się nie uploaduje, email siłą rzeczy również bez wysyłki.


na serwerze memory limit mam 64M
probowalem tez ustawiac limit na podstronie ini_set("memory_limit","wartosc");

ale nic to nie daje :/

BTW...tak teraz zajrzalem na inny serwer, gdzie wcześniej robiłem tylko upload plików i limit jest 192M, jak to teraz jest? zwiększają limity gdy się poprosi, czy trzeba za to płacić dodatkowo?

ma ktoś może jakieś pomysły?
fate
A jaka wpisales wartosc:

ini_set("memory_limit","wartosc");

I czy ini_set umiesciles przed skryptem wykonujacym?

walnij 2048M albo 4096M i sprawdz czy dziala

Sprobuj sie skontaktowac ewentualnie bo kto Ci odpowie w ciemno jak wszystko zalezy od hostujacego, tyle że ja na DARMOWYM hostingerze bez problemu to zmienilem i dopoki nie mam mega ruchu na stronie to mnie nie odlaczaja za przeciażenia CPU
lalas
Cytat(fate @ 10.09.2013, 13:02:28 ) *
A jaka wpisales wartosc:

ini_set("memory_limit","wartosc");

I czy ini_set umiesciles przed skryptem wykonujacym?

walnij 2048M albo 4096M i sprawdz czy dziala

Sprobuj sie skontaktowac ewentualnie bo kto Ci odpowie w ciemno jak wszystko zalezy od hostujacego, tyle że ja na DARMOWYM hostingerze bez problemu to zmienilem i dopoki nie mam mega ruchu na stronie to mnie nie odlaczaja za przeciażenia CPU


domena jest na netarcie,
ustawialem wcześniej do 3M jak ustawiłem na 4096 to wyskakuje komunikat:
  1. Fatal error: Allowed memory size of 262144 bytes exhausted (tried to allocate 77824 bytes) in /home/....itd


nigdy nie robie stron na darmowy hosting, ani nigdy z firm, ktore zwracają się do mnie o jakieś roboty. Tak więc domena jest na netarcie i tylko kontakt z adminem mi pozostaje chyba.

Tak przy okazji zrobilem test na tym serwerze na ktorym jest inna strona z tym limitem na 192M i tam wyslalem zdjecie 5,5M i przeszlo bez problemu.
fate
czyli jasne, musisz zagadać do admina.
lalas
Cytat(fate @ 11.09.2013, 08:43:27 ) *
czyli jasne, musisz zagadać do admina.


Zaraz tak zrobię ;p ...(ciekawe jakie sa górne widełki w takich przypadkach jeśli chodzi o wielkość memory_limit)

dzięki za włączenie się do tematu


BTW.... dzwoniłem hehhh nigdy nie podobała mi się ta firma ;p to jest maksymalny limit ;p można co najwyżej wziąć ActiveMAX gdzie będzie 128MB, no to szukamy nowego serwera ;p
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.