Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] Problem z wysyłaniem maili mail()
Zakarumita
post
Post #1





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 15.11.2016

Ostrzeżenie: (0%)
-----


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>
Go to the top of the page
+Quote Post
matiit
post
Post #2





Grupa: Zarejestrowani
Postów: 365
Pomógł: 70
Dołączył: 5.04.2009

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
Zakarumita
post
Post #3





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 15.11.2016

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
viking
post
Post #4





Grupa: Zarejestrowani
Postów: 6 381
Pomógł: 1116
Dołączył: 30.08.2006

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 25.08.2025 - 15:41