[PHP] Problem z e-mailami na onet

0

Witam!

Napisałem krótki skrypt mający wysyłać e-maile ze strony na pocztę. Wszystko działa dobrze, gdy wysyłam na interie czy tlen, jednak na onet większość nie dochodzi. Proszę o usunięcie poprzedniego tematu.

Oto fragment kodu

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
        "http://www.w3.org/TR/html4/strict.dtd">

<html>

  <head>
 
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2">
    <title>PHP Mail Sender</title>
   
  </head>
 
  <body>
 
  <?php

      $ip = $_SERVER['REMOTE_ADDR'];  /* Zmienna $ip przechowuje adres IP */
   
    $host = gethostbyaddr($ip); /* Pobranie hosta na podstawie adresu IP */
   
    $poprawny_formularz = false; /* Zmienna przechowujaca informacje o poprawnosci formularza */
   
    foreach ($_POST as $value)  /* Przeszukanie wszystkich pol */
    {
      if ($value == '')  /* Sprawdzenie, czy aktualne pole jest puste */
      {
        echo "wypelnij wszystkie pola";  /* Jesli tak to: informacja o tym, ze ktores pole nie jest wypelnione */
       $poprawny_formularz = false;  /* Zmiana zmiennej informujacej o poprawnosci formularza */
        exit(); /* Wyskoczenie z petli (wystarczy jedno puste pole, by wyrzucic blad) */
      }
      else
      {
        $poprawny_formularz = true; /* Po przeszukaniu wszystkich pol i nie znalezieniu pustego zmiana zmiennej */
      }
    }
   
    if ($poprawny_formularz == true) /* Sprawdzenie zmiennej posiadajacej informacje o poprawnosci formularza */
    {
        $head = "MIME-Version: 1.0\r\n";
        $head .= "Content-Type: text/plain; charset=iso-8859-2\r\n";
        $head .= "Content-Transfer-Encoding: 8bit\r\n";
        $head .= "From: nadawca\r\n";

        $email = "[email protected]";  /* Adres konta, na ktore zostanie wyslany formularz */
        $subject = "temat"; /* Temat e-maila */
        $message = 'Wiadomosc z komputera o adresie IP: '.$ip.", \n".'o hoscie: '.$host."\n\n"; /* Pierwsza linijka e-maila z adresem IP oraz hostem komputera, z ktorego wyslano formularz */

        if (mail($email, $subject, $message, $head)) /* Proba wyslania */
        {
          echo "Wysłano!"; /* Komunikat, gdy powiodlo sie */
        }
        else
        {
          echo "Blad serwera"; /* Komunikat, gdy nie powiodlo sie */
        }
      }
    else
    {
      echo "Wejście na plik sender.php!"; /* Komunikat, gdy nie powstala tablica - wejscie na strone bez uzycia formularza */
    }
  ?>

     </body>
 
</html> 
0

Nie wiem czym to jest spowodowane (co trzeba ustawic w naglowku) ale u mnie z serwera na niektore konta pocztowe email potrafi isc nawet do kilku dni ?!~Zakladam, ze dostales komunikat wyslane.

0

Tak, otrzymuje komunikat, że wysłane.

Mało tego, gdy podaje np trzech odbiorców (interia tlen onet), to interie i tlen przychodzi momentalnie a na onet nie :(

Napisałem już e-maila do administracji onetu, zobaczymy co oni na to.

0

Sprawdzałeś folder spam?

0

Folder spam pusty.
Podana przez Demonical Monk stronka dotyczy autoryzacji poczty wychodzącej z OnetPoczty, ale myślę, że do [email protected] i tak warto napisać.

Dzięki za pomoc.

0

To jest pierwsze co mi przyszło do głowy po tym jak kilka dni temu deamon logowania onetu mnie zaspamował właśnie tym linkiem.

0

Przekazujesz pocztę do jakiegoś lokalnego serwera pocztowego czy bezpośrednio do serwera docelowego? Odpowiedz "spróbuj później" to podstawowa taktyka walki ze spamem, element graylistingu a w przypadku onetu po prostu wynik limitu wysłanych maili na godzinę. Samo php sobie z tym nie poradzi w przeciwieństwie do MTA (np. exim), które w zależności od konfiguracji spróbuje wysłać maila jeszcze wiele razy.

1 użytkowników online, w tym zalogowanych: 0, gości: 1