Skocz do zawartości
Zaloguj się, aby obserwować  
grzesmlodzian

Funkcja mail() długo wysyła maile

Polecane posty

Założyłem forum: www.pingwinizakon.pl (phpBB2 modified by Przemo). Niestety mam z nim problem - wszelakie maile są długo wysyłane - ok. minuty. Jest to wkurzające ponieważ podczas rejestracji większość użytkowników pomyśli że coś się popsuło (cały czas ładuje się strona). Znalazłem na internecie przykładowy skrypt do testu:

<?php
$to = "someone@example.com";
$subject = "Test mail";
$message = "Hello! This is a simple email message.";
$from = "someonelse@example.com";
$headers = "From:" . $from;
mail($to,$subject,$message,$headers);
echo "Mail Sent.";
?>

i z nim jest tak samo - ładuje się, ładuje i dopiero gdzieś po minucie wysyła. Na gmailu listy docierają zaś na wp.pl najprawdopodobniej nie. Ja dopiero zaczynam ze stronami www więc kompletnie nie wiem co robić żeby to naprawić. Też nie wiem czy w dobrej kategorii zamieściłem ten post - jeżeli w złej to przepraszam. Serwer jest na Debianie 6 minimal. Informacje o wersjach itp. można się dowiedzieć stąd:

http://pingwinizakon...check_files.php

Bardzo proszę o pomoc.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Gość

Ale pomogłeś ;-)

 

Jeśli możesz, pokaż phpinfo. Wygląda to na problem z systemem wysyłania maili (dość oczywiste), wypada najpierw sprawdzić jak Twój mail() wysyła pocztę, a potem dojść do tego co go może boleć.

Edytowano przez Gość (zobacz historię edycji)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Gość

Gdybyś przeczytał dokładnie temat zauważyłbyś, że problem najprawdopodobniej nie dotyczy samego skryptu forum, a sposobu w jaki PHP wysyła maile (i ewentualnych problemów z tym systemem).

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Gość Adam Szendzielorz

[...]

Znalazłem na internecie przykładowy skrypt do testu:

<?php
$to = "someone@example.com";
$subject = "Test mail";
$message = "Hello! This is a simple email message.";
$from = "someonelse@example.com";
$headers = "From:" . $from;
mail($to,$subject,$message,$headers);
echo "Mail Sent.";
?>

i z nim jest tak samo - ładuje się, ładuje i dopiero gdzieś po minucie wysyła. Na gmailu listy docierają zaś na wp.pl najprawdopodobniej nie.

 

A uruchomiles go dokladnie tak jak zacytowales, bez zmiany pola From ? Jezeli tak to zadzialal SPF - wstaw w FROM Twoj prawdziwy adres e-mail - w domenie ktora obslugiwana jest na serwerze z ktorego wychodzi poczta. Inaczej SPF nie przepusci maila.

 

Zas co do sedna problemu - tak jak pisal samu - problem tyczy sie systemu pocztowego ktory te maile wysyla - zglos problem w helpdesku firmy gdzie hostujesz strone - sam nic nie wskorasz!

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Gość

A uruchomiles go dokladnie tak jak zacytowales, bez zmiany pola From ? Jezeli tak to zadzialal SPF - wstaw w FROM Twoj prawdziwy adres e-mail - w domenie ktora obslugiwana jest na serwerze z ktorego wychodzi poczta. Inaczej SPF nie przepusci maila.

 

 

SPF to swoją drogą. W każdym razie, mail wylecieć powinien w miarę szybko (inna sprawa, że najpewniej nie dojdzie), SPF nie ma tu nic do rzeczy akurat.

 

Na jedną rzecz jednak mi zwróciłeś uwagę - będziemy potrzebować informacji o tym gdzie się hostujesz. Czy to shared, czy to VPS, czy to dedyk. W tym pierwszym przypadku najpewniej będziesz potrzebował wsparcia firmy, u której się hostujesz.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Jest to VPS oparty na OpenVZ. Sorki że nie podałem ale myślałem że jak podałem system operacyjny to się domyślicie że to albo dedyk albo VPS a czytając że jestem początkującym to tylko VPS pozostaje smile.png

Raczej to nie wina forum - przecież z prostym skryptem testowym są takie same problemy.

Co do phpinfo to proszę: http://pingwinizakon.pl/phpinfo.php

Co do tego skryptu to "From" zmieniłem już wcześniej na admin@pingwinizakon.pl. Oto ostateczny jego wygląd (oczywiście w xxx mam swój adres gmail):

<?php
$to = "xxx@gmail.com";
$subject = "Test mail";
$message = "Hello! This is a simple email message.";
$from = "admin@pingwinizakon.pl";
$headers = "From:" . $from;
mail($to,$subject,$message,$headers);
echo "Mail Sent.";
?>

Rozumiem że przez @ mogę zamiast admina dać sobie cokolwiek chce tak? Co do wp email nadal nie doszedł sad.png

Mam nadzieję że się jakoś to naprawi. Bo na razie forum jest przez to zamknięte sad.png Liczę na waszą pomoc biggrin.png

 

PS iptables akceptuje wszystkie połączenia input/output.

Edytowano przez grzesmlodzian (zobacz historię edycji)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

A co mówią logi programu pocztowego? Mail ląduje w kolejce na początku czasu czy na końcu?

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Jakiego MTA używasz, albo pokaż wynik komendy:

ls -l /usr/sbin/sendmail

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Jest to VPS oparty na OpenVZ. Sorki że nie podałem ale myślałem że jak podałem system operacyjny to się domyślicie że to albo dedyk albo VPS a czytając że jestem początkującym to tylko VPS pozostaje smile.png

Raczej to nie wina forum - przecież z prostym skryptem testowym są takie same problemy.

Co do phpinfo to proszę: http://pingwinizakon.pl/phpinfo.php

Co do tego skryptu to "From" zmieniłem już wcześniej na admin@pingwinizakon.pl. Oto ostateczny jego wygląd (oczywiście w xxx mam swój adres gmail):

<?php
$to = "xxx@gmail.com";
$subject = "Test mail";
$message = "Hello! This is a simple email message.";
$from = "admin@pingwinizakon.pl";
$headers = "From:" . $from;
mail($to,$subject,$message,$headers);
echo "Mail Sent.";
?>

Rozumiem że przez @ mogę zamiast admina dać sobie cokolwiek chce tak? Co do wp email nadal nie doszedł sad.png

Mam nadzieję że się jakoś to naprawi. Bo na razie forum jest przez to zamknięte sad.png Liczę na waszą pomoc biggrin.png

 

PS iptables akceptuje wszystkie połączenia input/output.

 

phpowy mail() na linuxe wysyła maile wywołujac bezposrednio komende sendmail, jesli to trwa to długo

to moze to znaczyc ze system pocztowy ma problem z umieszczeniem przesyłki w kolejce, co moze wynikac z przeciazenia i/o, moze byc to spowodowane przez inne vpsy lub np. spam wysyłany przez twojego vpsa

 

jakie jest obciazenie i/o ?

komenda: iostat -kx 2

 

jak wyglada kolejka ?

komenda mailq

 

--

Lazy

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Gość Adam Szendzielorz

Ja bym jeszcze w pierwszej kolejnosci sprawdzil /etc/resolv.conf i sprawdzil ustawienia DNSow z ktorych maszyna korzysta - czy tu nie powstaja jakies opoznienia :)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

root@pingwinizakon:/home/grzesio# ls -l /usr/sbin/sendmail
lrwxrwxrwx 1 root root 26 Jul  7 17:30 /usr/sbin/sendmail -> /etc/alternatives/sendmail
root@pingwinizakon:/home/grzesio# iostat -kx 2
bash: iostat: command not found
root@pingwinizakon:/home/grzesio# mailq
MSP Queue status...
/var/spool/mqueue-client is empty
               Total requests: 0
MTA Queue status...
/var/spool/mqueue is empty
               Total requests: 0 

 

Przy tym mailq trochę podwisło...

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Dograj iostat, jak podałeś Debian 6 to komenda:

apt-get install sysstat -y

 

Jeżeli iowait nie będzie jakiś straszny, a serwer VPS ogólnie działa dobrze to prawdopodobnie winowajcą jest sendmail.

W takim razie zastąp go np. postfixem i sprawdź jak to będzie wyglądało w przypadku tego MTA.

 

Ja bym jeszcze w pierwszej kolejnosci sprawdzil /etc/resolv.conf i sprawdzil ustawienia DNSow z ktorych maszyna korzysta - czy tu nie powstaja jakies opoznienia smile.png

 

Drugi raz podajesz za przeproszeniem głupotę. ; )

Pierwszy raz wspominałeś o SPF, który nie ma nic wspólnego z serwerem z którego maile wychodzą.

Drugi raz wspominasz o resolverach, które nie biorą udziału w samym przekazaniu PHP -> system -> sendmail. Dopiero po umieszczeniu wiadomości w kolejce serwer MTA sprawdza przez resolvery jakie są MX'y danej domeny i gdzie ma te maile posłać, ale to już jest nie zależne od samego skryptu PHP.

 

Reasumując obecnie pozostają w zasadzie wyłącznie dwie możliwości duży i/o wait lub problem po stronie sendmaila.

Edytowano przez malu (zobacz historię edycji)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/
s avgrq-sz avgqu-sz   await  svctm  %util

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
          0.52    0.00    1.04    0.00    0.00   98.44

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/
s avgrq-sz avgqu-sz   await  svctm  %util

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
          1.04    0.00    1.04    0.00    0.00   97.93

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/
s avgrq-sz avgqu-sz   await  svctm  %util

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
          0.52    0.00    1.04    0.00    0.00   98.45

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/
s avgrq-sz avgqu-sz   await  svctm  %util

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
          1.05    0.00    0.52    0.00    0.00   98.43

A JAK SIĘ TO WYŁĄCZA?!

 

@malu Czy ty mi przypadkiem kiedyś nie proponowałeś oferty vipower? I pomogłeś mi dostać testowy VPS? Bo tak po avatarze cię skądś kojarzyłem... Właśnie tam mam tego VPSa :)

 

PS Błędy językowe w panelu są nadal :)

Edytowano przez grzesmlodzian (zobacz historię edycji)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Device:		 rrqm/s   wrqm/s	 r/s	 w/s	rkB/s	wkB/
s avgrq-sz avgqu-sz   await  svctm  %util

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
	   0.52	0.00	1.04	0.00	0.00   98.44

Device:		 rrqm/s   wrqm/s	 r/s	 w/s	rkB/s	wkB/
s avgrq-sz avgqu-sz   await  svctm  %util

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
	   1.04	0.00	1.04	0.00	0.00   97.93

Device:		 rrqm/s   wrqm/s	 r/s	 w/s	rkB/s	wkB/
s avgrq-sz avgqu-sz   await  svctm  %util

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
	   0.52	0.00	1.04	0.00	0.00   98.45

Device:		 rrqm/s   wrqm/s	 r/s	 w/s	rkB/s	wkB/
s avgrq-sz avgqu-sz   await  svctm  %util

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
	   1.05	0.00	0.52	0.00	0.00   98.43

A JAK SIĘ TO WYŁĄCZA?!

 

@malu Czy ty mi przypadkiem kiedyś nie proponowałeś oferty vipower? I pomogłeś mi dostać testowy VPS? Bo tak po avatarze cię skądś kojarzyłem... Właśnie tam mam tego VPSa smile.png

 

PS Błędy językowe w panelu są nadal smile.png

 

 

A więc widzimy, że iowaitu nie ma, tak jak Ci wspomniałem na PW, że pozwoliłem sobie sprawdzić lokalizacje serwera i zauważyłem, że to serwer u nas i znajduje się na macierzy SSD, która ma jeszcze spore możliwości, więc problem z I/O waitem odpada, ale pomimo wszystko możesz dograć narzędzie, bo może się jego znajomość przydać w przyszłości.

 

 

W obecnej sytuacji zastąp po prostu sendmaila np. postfixem i sądzę, że to na 99% rozwiąże problem, a przy okazji pozbędziesz się ukochanego dziurawego sendmaila. ; )

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Gość
Temat jest zablokowany i nie można w nim pisać.
Zaloguj się, aby obserwować  

×