Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Wysyłanie maila...
Forum PHP.pl > Forum > PHP
JaKo
A więc, napisałem skrypt subskrypcji oparty na plikach tekstowych. Co do zapisywanie adresów e-mail w pliku nie mam zastrzeżeń, i ogólnie wszystko działałoby dobrze, lecz po wypełnieniu formularza, maile nie przychodzą. poniżej przedstawie fragmenty skryptów.

Tak wygląda plik email.txt (czyli ten, co przechowuje maile):
Kod
mail@serwer.com, mail@serwer.com, mail@serwer.com


Tak wygląda skrypt, który ma wysyłać maile:
  1. <?php //Autor skryptu: JaKo. program pozwala na proste obsługiwanie subskrypcji...
  2.  
  3. //Konfigurujemy obsługę błędów
  4.  
  5. ini_set ('display_errors', 1);
  6. error_reporting (E_ALL & ~E_NOTICE);
  7.  
  8. if (isset ($_POST['wyslij'])) {
  9.  
  10.  if (empty($_POST['tresc'])) {
  11.  print "Wpisz tresc!";
  12.  }
  13.  if (empty($_POST['temat'])) {
  14.  print "Wipsz temat";
  15.  }
  16.  
  17.  $adresy = file_get_contents ('email.txt');
  18.  mail ($adresy, $_POST['temat'], $_POST['tresc'], 'From: admin@site.com');
  19.  
  20. } //Koniec IF
  21.  
  22.  
  23. ?>
  24.  
  25. <form method="POST" action="admin_subskrypcja.php">
  26. <div align="left">
  27. <table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="257" height="232" id="AutoNumber1">
  28. <tr>
  29. <td width="257" height="13">Temat:
  30. <input type="text" name="temat" size="26"></td>
  31. </tr>
  32. <tr>
  33. <td width="257" height="150">Tresc:
  34. <textarea rows="8" name="tresc" cols="20"></textarea></td>
  35. </tr>
  36. <tr>
  37. <td width="257" height="61">Wyslij:
  38. <input type="submit" value="Wyslij!" name="wyslij"></td>
  39. </tr>
  40. </table>
  41. </div>
  42. <p>
  43. <br /><br />
  44. </form>


Proszę o wskazanie błędu w kodzie. Z góry dziękuje!
mike
1. Czy na pewno masz dobrze skonfigurowany serwer pocztowy :?:
2. Jak ktoś nie poda tytułu lub treści to funkcja mail() i tak jest wykonywana, a jak mniemam nie powinna. Obejmij to instrukcją warunkową;
3. Sprawdź czy funfkcja mail() nie zwraca przypadkiem false;
JaKo
Zastosowałem się do radu z instrukcją warunkową. Ustawienia poczty są dobrze skonfigurowane. Tyle udało mi sie zrobi z tych rad, jestem początkującym programistą i nie za bardzo wiem jak sprawdzic to czy funkcja mail() zwraca false... Mógłbyś mi wytłumaczyc?
mike
Bycie początkującym nie zwalnia od zaprzyjaźnienia się z manualem, ba nawet zobowiązuje do tego.
mail()
  1. <?php
  2.  
  3. // ...
  4. if( mail($adresy, $_POST['temat'], $_POST['tresc'], 'From: admin@site.com') )
  5. {
  6. echo 'Wysłanie powiodło się!';
  7. }
  8. else
  9. {
  10. echo 'Wysłanie nie powiodło się!';
  11. }
  12.  
  13. // ....
  14.  
  15. ?>


Napisz, który komunikat sie wyświatla. Pomyślimy dalej.
JaKo
Wyswietla się, ze się powiodło, a na skrzynce nadaj nic nie ma, co dalej?
pf
A może masz jakieś ograniczenia na serwerze, na który wysyłasz mail?
Mi też się czasami zdarzało, że maile wysyłane funkcją mail() nie dochodziły np. na darmowe skrzynki wp.pl.
Czasami serwery mają zamontowane jakieś niby-zabezpieczenia antyspamowe czy coś takiego i odrzucają maile bez autoryzacji...
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.