Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: wysyłanie maila na nieistniejący mail
Forum PHP.pl > Forum > PHP
Taifun
witam,
mam forum gdzie użytkownicy przez pewien okres czasu nie potwierdzali maili. Dlatego wpisywali złe maile, które w rzeczywistosci nie istnialy.
Jak wysylam na taki mail wiadomosc to niestety ale pojawia sie biala strona bez bledu jakiegokolwiek. Sprawdzalem te maile i faktycznie nie istnieja. Jak sobie poradzic z takim problemem?
delfinium
Mail wyśle się niezależnie czy skrzynka istnieje czy nie i błędu nie będzie. Ja znam tylko 3 rozwiązania:

1. getmxrr" title="Zobacz w manualu PHP" target="_manual - przy zakładaniu konta możesz sprawdzać rekord MX serwera, na którym ma się niby znajdować skrzynka. Nie siedzę dokładnie w temacie ale większość serwerów pocztowych ma rekord MX, chociaż miałem już sytuacje, że adres mailowy istniał na 100% a rekordu MX nie udało się sprawdzić. Dodatkowo nie idzie sprawdzić czy skrzynka na tym serwerze rzeczywiście istnieje więc to jeśli już to tylko połowiczne rozwiązanie.

2. Ja mam dodatkowy sposób na takie skrzynki ale ciężko go zrobić w "normalnych" warunkach. Jeśli serwer docelowy przyśle mi zwrotkę, że takie konto nie istnieje to system pocztowy przekazuje do php całą wiadomość a ja już sobie wyciągam jaka to była skrzynka i czemu nie doszło, na podobnej zasadzie działa powiadamianie SMSem o nadejściu poczty. Ale żeby takie coś uzyskać musiałbyś mieć wtyki u administracji serwera albo mieć własną maszynkę.

3. Ten wykorzystuję najczęściej i działa w 100%. Po prostu przy rejestracji wymagam podania emaila na który wysyłam prośbę o potwierdzenie i aktywację konta. Jak nie odpowie w ciągu X dni to kij z nim - albo mail zły albo się rozmyślił i wtedy nie ma już problemu z wysyłaniem maili na nieistniejące konta.

A jak już masz te adresy w bazie to jedyne jak dla mnie wyjście to jeśli dostajesz zwrotki o niedostarczonej poczcie to musiałbyś ręcznie wywalać adresy bo chyba innej metody nie ma.
Taifun
a dlaczego mi wywala białą stronę i przerwywa pętle skoro break nie ma nigdzie w żadnym else :/

Może niejasno się wyraziłem. Przy normalnych mailach śmiga ale gdy zwracany jest wysłana wiadomość czyli mail nie istnieje to pojawia sie biala strona, przerywa pętle ;/


  1. <?php
  2.  
  3. po&#322;ączenie z bazą
  4.  
  5.  
  6. $id = $_GET['id'];
  7.  
  8. $zapytanie = "SELECT `username`,`user_email` FROM `phpbb3_users` WHERE `user_id`=$id";
  9. $query=mysql_query($zapytanie);
  10.  
  11.  while($result=mysql_fetch_array($query))
  12. {
  13. $imie = $result['username'];
  14. $temat = "temat maila";
  15. $mailu = $result['user_email'];
  16. $do_kogo = "$mail2";
  17. $nazwa = "nazwa";
  18. $mailt = "adres@o2.pl";
  19.  
  20. $nazwan = "no-reply";
  21. $mailtn = "no-reply@o2.pl";
  22.  
  23.  
  24.  
  25. $wiadomosc = "
  26. <html>
  27. <head>
  28. <meta http-equiv='content-type' content='text/html; charset=UTF-8' />
  29. </head>
  30. <body>
  31. Piocy
  32. </body>
  33. </html>";
  34.  
  35. $naglowki = "Reply-to: $nazwan <$mailn>\n";
  36. $naglowki .= "From: $nazwa <$mailt>\n";
  37. $naglowki .= "Content-type: text/html; charset=utf-8\n"; 
  38.  
  39. if(mail($mailu, $temat, $wiadomosc, $naglowki))
  40. {
  41. echo 'Wyslano e-mail;';
  42. }
  43. else {
  44. echo 'Nieoczekiwany błąd';
  45. }
  46.  
  47. $numer = $id;
  48. $nowy = $numer+1; 
  49.  
  50. echo "<META HTTP-EQUIV=\"Refresh\" CONTENT=\"3,URL=http://www.adres_ze_skryptem.pl/mail.php?id=$nowy\">";
  51. echo "Wyslano do <b>$mailu</b> ($imie)";
  52. }
  53. mysql_close($polaczenie); 
  54. ?>
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.