Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]PHPMailer->send() zawsze zwraca false
Forum PHP.pl > Forum > Przedszkole
Gość
Witam

Robie na stornie mailng i chce sprawdzic czy maile wysylaja sie popranwie. Uzywam skryptu phpmailer i jego funkcja send() zawsze mi zwraca false - mimo, ze maile dochodza. Spotkal sie ktos z takim problemem?
nospor
Niemozliwe wink.gif

Pokaz kod i jak ty to sprawdzasz?
Gość
http://wklej.org/id/1132697/

w 79 mam
  1. if( $mail->send() ) $orm->sendTo++;

i to nie dziala

Dla testu dalem po prostu
  1. $orm->sendTo++;


i wtedy dzialalo
thek
Zdebuguj CO dostajesz. Skoro już samo send() nie działa, to chyba jest tego jakaś przyczyna i należy szukać głębiej w funkcjach wewnątrz tej metody? Send(), z tego co zerknąłem na kod tej klasy na githubie, może walnąć false w kilku sytuacjach:
- kiedy preSend() zwraca false,
- kiedy preSend lub postSend walą exceptiona, ale masz ustawione olewanie ich. A jest to działanie domyślne!

Tym samym nie wiesz nawet, że exception pofrunął w kosmos, bo prawie każda metoda tej klasy ma:
  1. try {
  2. // tu kod
  3. } catch (phpmailerException $e) {
  4. $this->setError($e->getMessage());
  5. if ($this->exceptions) {
  6. throw $e;
  7. }
  8. return false;
  9. }
co przy domyślnym ustawieniu $this->exception = false; w konstruktorze tej klasy kończy się zawsze zwracaniem false przy jakimkolwiek wyjątku i konieczności sprawdzania publicznej ErrorInfo by dowiedzieć co jest grane. A jak widać, nic w kodzie nie robisz takiego.

Popatrz co dostajesz w $mail->ErrorInfo a stanie się jasność wink.gif
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.