Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Problem z wysyłaniem maili mail()
Forum PHP.pl > Forum > Przedszkole
Zakarumita
Witam. Z racji, tego iż jest to mój pierwszy post na tym forum a moja znajomość PHP równa się 2/10 to mam pytanie dotyczące wysyłania maili. O kilku dni borykam się z problematycznym kodem jak dla mnie do wysyłania maili. Dostałem go od kolegi który zrobił to na podstawie jakiegoś forum, lecz nadal występuje problem za każdym razem gdy chce wysłać mail wyświetla się komunikat: "Wystąpił błąd podczas wysyłania wiadomości, spróbuj później."

Sprawdzałem w phpinfo i jest ok (włączone). Albo w kodzie jest błąd albo zła funkcja.


  1. [PHP]<?php
  2. $n_nazwa_firmy = htmlspecialchars(trim($_POST['n_nazwa_firmy']));
  3. $n_email = htmlspecialchars(trim($_POST['n_email']));
  4. $n_tel = htmlspecialchars(trim($_POST['n_tel']));
  5. $n_brama = htmlspecialchars(trim($_POST['n_brama']));
  6. $n_sil_nap = htmlspecialchars(trim($_POST['n_sil_nap']));
  7. $n_ster = htmlspecialchars(trim($_POST['n_ster']));
  8. $n_miejsce = htmlspecialchars(trim($_POST['n_miejsce']));
  9. $n_typ = htmlspecialchars(trim($_POST['n_typ']));
  10. $temat = htmlspecialchars(trim($_POST['temat']));
  11. $send = $_POST['send'];
  12.  
  13.  
  14. $odbiorca = "mail@mail.pl";
  15.  
  16.  
  17. $header = "Content-type: text/html; charset=utf-8\r\nFrom: $n_email";
  18.  
  19.  
  20.  
  21. if (isset($_COOKIE['send'])) $error ='Odczekaj '.($_COOKIE['send']-time()).' sekund przed wysłaniem kolejnej wiadomości';
  22.  
  23. if ($send && !isset($_COOKIE['send']))
  24. {
  25.  
  26. if (empty($n_email))
  27. { $error .= "Nie wypełniłeś pola <strong>E-mail !</strong><br/>"; }
  28. elseif (strlen($n_email) > 30)
  29. { $error .="Za długi e-mail - max. 30 znaków <br/>";}
  30. elseif (preg_match('/^[a-zA-ZąćęłńóśźżĄĆĘŁŃÓŚŹŻ0-9\-\_\.]+\@[a-zA-ZąćęłńóśźżĄĆĘŁŃÓŚŹŻ0-9\-\_\.]+\.[a-z]{2,4}$/',$n_email) == false)
  31. { $error .= "Niepoprawny adres E-mail! <br/>"; }
  32.  
  33. if (empty($error))
  34. {
  35. $list = "$n_nazwa_firmy ($n_email) <br/> $temat
  36. Nazwa Firmy: $n_nazwa_firmy<br/>
  37. Email: $n_email<br/>
  38. Tel: $n_tel<br/>
  39. Brama: $n_brama<br/>
  40. Silownik i naped: $n_sil_nap<br/>
  41. Sterowanie: $n_ster<br/>
  42. Miejsce montazu: $n_miejsce<br/>
  43. Typ przegladu: $n_typ<br/>";
  44.  
  45. if (mail($odbiorca, $temat, $list, $header))
  46. {
  47. $error .= "Twoja wiadomość została wysłana";
  48. setcookie("send", time()+60, time()+60);
  49. }
  50. else
  51. { $error .= "Wystąpił błąd podczas wysyłania wiadomości, spróbuj później.";}
  52. }
  53. }
  54. ?>
[/php]


Tak wyglada kod HTML:
  1. <form action="" method="POST">
  2. <div class="input-field">
  3. <input type="text" name="n_nazwa_firmy" class="form-control" placeholder="Nazwa Firmy">
  4. </div>
  5. <div class="input-field">
  6. <input type="email" name="n_email" class="form-control" placeholder="Adres E-Mail">
  7. </div>
  8. <div class="input-field">
  9. <input type="text" name="n_tel" class="form-control" placeholder="Numer Telefonu">
  10. </div>
  11. <div class="input-field">
  12. <input type="text" name="n_brama" class="form-control" placeholder="Brama - producent, typ oraz nr. seryjny">
  13. </div>
  14. <div class="input-field">
  15. <input type="text" name="n_sil_nap" class="form-control" placeholder="Siłownik / Napęd">
  16. </div>
  17. <div class="input-field">
  18. <input type="text" name="n_ster" class="form-control" placeholder="Sterowanie - producent, typ oraz nr. seryjny">
  19. </div>
  20. <div class="input-field">
  21. <input type="text" name="n_miejsce" class="form-control" placeholder="Miejsce montażu bramy">
  22. </div>
  23. <div class="input-field">
  24. <input type="text" name="n_typ" class="form-control" placeholder="Typ Przeglądu (półroczny, roczny, dwuletni)">
  25. <input type="hidden" name="temat" value="Wycena Online">
  26. </div>
  27. <input type="submit" value="Wyślij" id="send" name="send" />
  28. </form>
  29. <h2><?php echo $error; ?></h2>
matiit
Zmien kawalek swojego kodu na cos takiego

  1.  
  2. if (mail($odbiorca, $temat, $list, $header))
  3. {
  4. $error .= "Twoja wiadomość została wysłana";
  5. setcookie("send", time()+60, time()+60);
  6. }
  7. else
  8. {
  9. print_r(error_get_last());
  10. $error .= "Wystąpił błąd podczas wysyłania wiadomości, spróbuj później." ;}
  11. }


I przynajmniej bedzie wiadomo, czemu funkcja mail() nie dziala.
Zakarumita
Cytat(matiit @ 15.11.2016, 00:24:42 ) *
Zmien kawalek swojego kodu na cos takiego

  1.  
  2. if (mail($odbiorca, $temat, $list, $header))
  3. {
  4. $error .= "Twoja wiadomość została wysłana";
  5. setcookie("send", time()+60, time()+60);
  6. }
  7. else
  8. {
  9. print_r(error_get_last());
  10. $error .= "Wystąpił błąd podczas wysyłania wiadomości, spróbuj później." ;}
  11. }


I przynajmniej bedzie wiadomo, czemu funkcja mail() nie dziala.


nic nie pomogło, nawet się nie wyświetla. Uprzedzam, iż strona jest napisana jako jedna (scrolowana) i zakładki są w postaci Hasztagu.
viking
Musi się wyświetlić ostatni błąd z takim kodem. Jeśli wysyłasz z Windows to oczywiście domyślnie system nie ma żadnego sewera. Zamiast preg_match użyj filter_var choćby dlatego ze czasu max 4 literowych domen dawno się skończyły.
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.