Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Serwer nie wysyła maili
Forum PHP.pl > Forum > PHP
Lethys
Witam,

Mam problem, od dłuższego czasu użytkownicy mojego serwisu zaczęli się skarżyć, że nie dostają maila aktywacyjnego.

Zarejestrowałem się sam na nowo i faktycznie nie dostałem wiadomości.

Zrobiłem więc prosty skrypt, który powinien wysłać do mnie wiadomość:

  1. <?php
  2.  
  3. include "config.php";
  4.  
  5. //Przypomnienie o celu
  6. $result4 = mysql_query("select * from uzytkownicy where nick='Lethys'");
  7. $numrows4 = mysql_num_rows($result4);
  8.  
  9. echo 'Maili do wysyłki: '.$numrows4.'';
  10. //$row[id]
  11.  
  12. if($numrows4 > 0) {
  13. while ($row = mysql_fetch_array($result4)) {
  14.  
  15. $message =
  16. "Cześć <b>$imie</b>,<br>
  17.  
  18. Właśnie zostało założone Twoje konto. Dane do logowania:
  19. <b>Email:</b> $email
  20. <b>Hasło:</b> $pass
  21. <br>
  22. Aby konto było aktywne aktywuj swoje konto: link
  23. <br>
  24. Pozdrawiamy,<br>
  25. Lethys";
  26.  
  27.  
  28.  
  29. $content = $message;
  30. $header = "From: Lethys <kontakt@lethys.pl>\r\n";
  31. $header .= 'MIME-Version: 1.0' . "\r\n";
  32. $header .= 'Content-type: text/html; charset=UTF-8' . "\r\n";
  33. (mail($row[email], 'Ważne pytanie', $content, $header));
  34.  
  35. }
  36. }
  37. ?>



No i wiadomość z tego skryptu rówhonież nie dochodzi. Warto zaznaczyć, że ten sam skrypt na innej domenie (ten sam hosting) działa dobrze.


Co może być problemem?
skowron-line
A jakiś error spada do logów questionmark.gif cos sie wyświetla na ekran questionmark.gif
  1. echo '<pre>';
  2. print_r(explode(',', ini_get("disable_functions")));
  3. echo '<br />';
  4. var_dump(function_exists("mail"));
Uriziel01
Przede wszystkim powtórz wykonanie skryptu z linijką

na początku kodu. Daj wynik.
Lethys
Skrypt znacznie uprościłem do wersji:

  1.  
  2. <?php
  3. ini_set('display_errors', 1);
  4.  
  5. echo '<pre>';
  6. print_r(explode(',', ini_get("disable_functions")));
  7. echo '<br />';
  8. var_dump(function_exists("mail"));
  9.  
  10. $message =
  11. "Cześć <b>asdfsdf</b>,<br>
  12.  
  13. Właśnie zostało założone Twoje konto. Dane do logowania:
  14. <b>Email:</b> sdfsdfsdf
  15. <b>Hasło:</b> sdfsdf
  16. <br>
  17. Aby konto było aktywne aktywuj swoje konto: sdfsdfsdfsdf
  18. <br>
  19. Pozdrawiamy,<br>
  20. Zespół";
  21.  
  22.  
  23.  
  24. $content = $message;
  25. $header = "From: Nadawca <jakis@mail.pl>\r\n";
  26. $header .= 'MIME-Version: 1.0' . "\r\n";
  27. $header .= 'Content-type: text/html; charset=UTF-8' . "\r\n";
  28. (mail('mojmail@gmail.com', 'Ważne pytanie', $content, $header));
  29.  
  30.  
  31. ?>


Skrypt wywala:

  1. (
  2. [0] => system
  3. [1] => passthru
  4. [2] => shell_exec
  5. [3] => pcntl_exec
  6. [4] => proc_open
  7. [5] => proc_nice
  8. [6] => proc_terminate
  9. [7] => proc_get_status
  10. [8] => proc_close
  11. [9] => pfsockopen
  12. [10] => show_source
  13. [11] => leak
  14. [12] => eval
  15. [13] => getmyuid
  16. [15] => diskfreespace
  17. [16] => disk_free_space
  18. [17] => disk_total_space
  19. [18] => posix_kill
  20. [19] => posix_mkfifo
  21. [20] => posix_setpgid
  22. [21] => posix_setsid
  23. [22] => posix_setuid
  24. )
  25.  
  26. bool(true)


Oczywiście maile nie dochodzą czyli skrypt nie działa. Sprawdziłem go na innej domenie i wszystko jest ok.

Czemu mi na jednej domenie przestał działać mail? Przecież to prosty skrypt i nie ma prawa nie działać.
skowron-line
a co zwraca
  1. var_dump( (mail('mojmail@gmail.com', 'Ważne pytanie', $content, $header)));

czy maile wogóle wychodzą questionmark.gif
Cytat
Returns TRUE if the mail was successfully accepted for delivery, FALSE otherwise.
It is important to note that just because the mail was accepted for delivery, it does NOT mean the mail will actually reach the intended destination.


Edit:
http://stackoverflow.com/questions/5141326...rtain-addresses
!*!
Skontaktuj się z administratorem. Poza tym sprawdź czy mail nie jest uznawany jako spam po wysłaniu.
Lethys
Cytat(skowron-line @ 28.09.2012, 12:16:55 ) *
a co zwraca
  1. var_dump( (mail('mojmail@gmail.com', 'Ważne pytanie', $content, $header)));

czy maile wogóle wychodzą questionmark.gif

Var dump zwraca mi: bool(true)


Edit:
http://stackoverflow.com/questions/5141326...rtain-addresses


Sprawdziłem domene przez: http://www.mxtoolbox.com

i mi wyszło, że jest na blackliscie (nazwa blacklisty BARRACUDA). Nie wiem o co chodzi z tymi blacklistami ale watpie aby mialo to powiazanie z gmailem.

Ze swojej strony wysylalem tylko i wylacznie potwierdzenia rejestracji. To samo IP ma wiele domen na hoscie z tego co wiem.

Jak rozwiązać ten problem? Czyli wyszlo chyba na to ze skrypt dziala tylko poczta nie dochodzi (jest traktowana jako spam i w ogole nie dochodzi?). Dziwne bo na innej domenie na tym samym hoscie wszystko działa jak należy.
skowron-line
A czy na innej domenie na tym samym hostingu wysyłasz z tego samego adresu questionmark.gif
Lethys
Tak wszystko jest tak samo zrobione, skrypt po prostu kopiowalem na inna domene i puszczalem go. (tam działał).

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.