Strona 1 z 1

Phpmailer na stronie www - jak sprawdzić co się stało z emailem?

: 14 czerwca 2011, 17:26
autor: goska_23
Mam 2 strony www, które korzystają z funcji "phpmailer" do wysyłania emaili ze strony www do użytkownika który wypełnił formularz na stronie i do administratora strony o fakcie wypełnienia formularza.

Mój "phpmailer", który mam na 2 serwerach z linuxem i dwiema stronami www wysyła pocztę korzystając z zewnętrznego serwera SMTP, do którego ma wpisany adres i konto pocztowe z którego jest wysyłana wychodząca poczta.
Serwer SMTP jest hostingowy tzn. nie u mnie gdzie mam te 2 serwery linuxowe ze stronami www , tylko u dostawcy jakieś 100km ode mnie.


Mam taki problem, że zdarzyło się, że ktoś wypełnił na mojej stronie www formularz , dane z tego formularza weszły do bazy MySQL natomiast na wskazane w funkcji "phpmailer" konto administratora nie przyszedł/lub nie został wysłany email.
Mam problem, żeby ustalić co się stało - czy email nie został wysłany, jeśli tak to dlaczego lub czy nie dotarł do skrzynki pocztowej na tym serwerze w hostingu 100 km stąd?

Próbowałam coś znaleźć w logach na moim linuxie (to akurat jeszcze Fedora do wymiany na Debiana a drugą stronę mam na Debianie Lenny).
Jedyne logi, które mają jakąś informację w zakresie tego tematu to:
/var/log/httpd/error_log
/var/log/httpd/access_log
i dają one informację o użytkowniku o której godzinie, z jakiego IP się zalogował do części strony na której jest formularz i o otwarciu pliku z formularzem.
Nie znalazłam nic o wysyłaniu emaila za pomocą "phpmailera".
Nie zmieniałam nic w kodach strony www, dzisiaj wysyłanie emaili działa.

Czy przyczyną braku emaila może być na przykład awaria hosta z naszym zewnętrznym serwerem pocztowym? Czy jeżeli ten host byłby chwilowo niedostępny to mój "phpmailer" nie ponowił by za 1 godz, za 2 godz, itp. wysyłania emaila? Czy można ustawić opcję ponawiania wysyłania emaila?


Ogólnie, funkcja wysyłania emaili ze strony jako taka - działa, zdarzenie z którym mam problem dotyczy sprawy sprzed kilku dni w którym tylko 1 użytkownik wypełniał formularz na stronie i email z informacją o tym fakcie nie znalazł się w skrzynce pocztowej administratora.

Może dostanę jakąś poradę od kogoś kto lepiej zna "phpmailera"?

: 15 czerwca 2011, 11:45
autor: Bastian
Ta funkcja, o której wspominasz to zapewne mailer() z repozytorium PEARa. Niestety, jeżeli w programie nie masz zaimplementowanej obsługi zdarzeń tej funkcji (chociażby co ona zwraca) to będzie ciężko dowiedzieć się, czy została poprawnie wykonana i jeśli tak to co się dalej z mailem stało. Skoro została zapisana do bazy to pewne jest to, że użytkownik kliknął na "Wyślij". Pozostaje Ci napisać do admina serwera pocztowego, z którego SMTP korzystacie, podanie danych i czasu akcji i niech sprawdzi, czy takie żądanie zostało u nich w logach zarejestrowane.

: 15 czerwca 2011, 17:11
autor: goska_23
Dzięki za odzew!
Chodziło mi właśnie o to, co w ogóle mogło się stać że nie ma emaila w przypadku gdy funkcja cały czas działała dobrze i brak jest jakichś wskazówek z czego mógł wyniknąć problem.

Aczkolwiek pytanie może brzmieć głupio to chciałam się upewnić czy tego rodzaju funkcje jak mój "phpmailer" umieszczane w kodzie strony www nie mają funkcji "ponawiania", czyli jak nie uda im się połączyć z serwerem SMTP to jest koniec tematu?

Serwer pocztowy na Debianie nie był najpilniejszy więc odłożyłam ten temat a teraz wynika z tego, że jest potrzebny żeby lepiej kontrolować wysyłanie emaili ze strony. ;-)

: 17 czerwca 2011, 11:34
autor: markossx
Można podsłuchać komunikacje i wybadać czy jest jakiś ruch do SMTP.