Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php][html]Wysyłanie emaili ze stronki - czemu nie działa
Forum PHP.pl > Forum > PHP
Oscar_83
Witam
Mam problem z wysyłaniem emaili ze stronki. Niby wszystko pokazuje że jest oki ale emaile nie dochodzą na pocztę, czy ktoś wie w czym tkwi problem??
Na początku miałem stronkę na darmowej domenie więc myślałem że to przez to, teraz jednak na płatnej też nie dochodzi:/

oto kod:
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=windows-1250" />
  5. <title>...</title>
  6. <link rel="stylesheet" type="text/css" href="style.css" />
  7. </head>
  8.  
  9. <body>
  10. <font face="Trebuchet MS">
  11. <p><b>KONTAKT:</b></p><br>
  12.  
  13. <p>...</p>
  14. <p>J. Branicki, J. Chrapkowski, J. Prywiński, Sp. J.</p>
  15. <p>Ul. Chodkiewicza 15</p>
  16. <p>85-065 Bydgoszcz</p>
  17. <p>tel: +48 52 325 12 86, fax: +48 52 325 12 85,</p>
  18. <p><a href="mailto:zukos220@interia.pl" >e-mail: zukos220@interia.pl</a></p>
  19. </font>
  20. <br><br><br><br><br>
  21. <?php
  22.  
  23. $imie = $_POST['imie'];
  24. $email = $_POST['email'];
  25. $tresc = $_POST['tresc'];
  26. $zapytanie = $_POST['tresc'];
  27.  
  28.  if ($imie && $email && $tresc && $zapytanie) {
  29. $text = "
  30.  Imie: $imie
  31.  
  32.  E-Mail: $email
  33.  
  34.  Tresc: $tresc
  35.  
  36.  ---------------
  37.  Wysłano: ".date("d.m.Y - H:i:s")."";
  38.  
  39. $headers = "Content-type: text/plain; charset=windows-1250";
  40.  
  41.  @mail("$zapytanie","E-Mail ze strony ...",$text,$headers);
  42.  ?> <font color="green"><?php
  43.  echo 'E-Mail wysłano poprawnie!';?></font><?php
  44. } elseif((empty($imie) or empty($email) or empty($zapytanie) or empty($tresc)) and (isset($imie) or isset($email) or isset($zapytanie) or isset($tresc))) {
  45.  ?> <font color="green"><br><?php echo 'Wypełnij wszystkie pola formularza!';
  46. ?></font><?php
  47. }
  48.  
  49. ?>
  50.  
  51. <form method="post">
  52. <table border="1" width="90%" cellspacing="1" cellapdding="3" align="center">
  53.  <tr>
  54.  <td bgcolor="#CCE6FF" colspan="2" align="center">Formularz kontaktowy<br>&nbsp</td>
  55.  </tr>
  56.  <tr>
  57.  <td bgcolor="#CCE6FF" width="35%" align="right">Rodzaj &nbsp<br> zapytania: &nbsp</td>
  58.  <td bgcolor="#CCE6FF" width="55%">
  59.  <select name="zapytanie" class="select">
  60.  <option value="zukos220@interia.pl" style="background-color: #CCE6FF">dział sprzedaży</option>
  61.  <option value="zukos220@interia.pl" style="background-color: #CCE6FF">sekretariat</option>
  62. </select> <br />
  63.  </td>
  64.  </tr>
  65.  <tr>
  66.  <td bgcolor="#CCE6FF" align="right">Imię i nazwisko: &nbsp</td>
  67.  <td bgcolor="#CCE6FF">
  68.  <input type="text" style="background-color: #8FA0B0" name="imie">
  69.  </td>
  70.  </tr>
  71.  <tr>
  72.  <td bgcolor="#CCE6FF" align="right">e-mail: &nbsp</td>
  73.  <td bgcolor="#CCE6FF">
  74.  <input type="text" style="background-color: #8FA0B0" name="email">
  75.  </td>
  76.  </tr>
  77.  <tr>
  78.  <td bgcolor="#CCE6FF" align="right">Treść &nbsp<br> wiadomości: &nbsp</td>
  79.  <td bgcolor="#CCE6FF">
  80.  <textarea style="background-color: #8FA0B0" name="tresc" cols="40%" rows="5"></textarea>
  81.  </td>
  82.  </tr>
  83.  <tr>
  84. <td bgcolor="#CCE6FF" colspan="2" align="center">
  85. <input type="submit" name="SUBMIT" value="Wyślij">
  86. </td>
  87. </tr>
  88. </table>
  89. </form>
  90.  
  91. </body>
  92.  
  93. </html>


po wypełnieniu wszystkich pól i kliknięciu na "wyślij" stronka dosyć długo się przeładowuje po czym wyświetla komunikat "E-Mail wysłano poprawnie!" lecz wcale ten email nie dochodzi :/
Czy ktoś wie czemu tak jest
Proszę o pomoc.
porady-it.pl
Po pierwsze text z informacją o wysłaniu e-maila nic nie znaczy bowiem nie sprawdzasz jaką wartość zwraca funkcja mail, powinno być tak:

  1. <?php
  2. if(@mail(...)) 
  3. echo 'E-mail został wysłany';
  4. else
  5. echo 'ERROR: E-mail nie został wysłany.';
  6. ?>

Druga sprawa że pomyliłeś pierwszy parametr funkcji bowiem powinno być tam $email więc poprawnie byłoby:

  1. <?php
  2. if(@mail($email, "E-Mail ze strony [zmoderowane-na-prosbe]", $text, $headers)) 
  3. echo 'E-mail został wysłany';
  4. else
  5. echo 'ERROR: E-mail nie został wysłany.';
  6. ?>
quality
Zastanów się nad tą linią :
  1. <?php
  2. @mail("$zapytanie","E-Mail ze strony [zmoderowane-na-prosbe]",$text,$headers);
  3. ?>

Tutaj masz prawidłową składnię z php.net:
  1. <?php
  2. mail("nobody@example.com", "temat", $wiadomosc,
  3.  "From: webmaster@$SERVER_NAMEr\n"
  4. ."Reply-To: webmaster@$SERVER_NAMEr\n"
  5. ."X-Mailer: PHP/" . phpversion());
  6. ?>



Na pierwszym miejscu powinien być adres e-mail a ty masz zapytania i to w dodatku w cudzysłowiach smile.gif
Oscar_83
zamieniłem kod na taki co mi podał porady-it.pl i teraz jak tylko wejdę na tą stronę to odrazu pisze: "ERROR email nie został wysłany", a jak powpisuje dane i klikne wyślij to jest napisane że wysłano poprawie, lecz emaile dalej nie dochodzą, w czym jeszcze tkwi błąd? i jak w ten kod mógłbym dodać jeszcze kod sprawdzający czy wszystkie pola są wypełnione? (kombionowałem ale cały czas błędy unexpected wyskakiwały).
chciałbym aby ten adres emailowy wybierany był za pomocą option value.

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=windows-1250" />
  5. <title>...</title>
  6. <link rel="stylesheet" type="text/css" href="style.css" />
  7. </head>
  8.  
  9. <body>
  10. <font face="Trebuchet MS">
  11. <p><b>KONTAKT:</b></p><br>
  12.  
  13. <p>...</p>
  14. <p>J. Branicki, J. Chrapkowski, J. Prywiński, Sp. J.</p>
  15. <p>Ul. Chodkiewicza 15</p>
  16. <p>85-065 Bydgoszcz</p>
  17. <p>tel: +48 52 325 12 86, fax: +48 52 325 12 85,</p>
  18. <p><a href="mailto:zukos220@interia.pl" >e-mail: zukos220@interia.pl</a></p>
  19. </font>
  20. <br><br><br><br><br>
  21. <?php
  22.  
  23. $imie = $_POST['imie'];
  24. $email = $_POST['email'];
  25. $tresc = $_POST['tresc'];
  26. $zapytanie = $_POST['tresc'];
  27.  
  28.  if ($imie && $email && $tresc && $zapytanie) {
  29. $text = "
  30.  Imie: $imie
  31.  
  32.  E-Mail: $email
  33.  
  34.  Tresc: $tresc
  35.  
  36.  ---------------
  37.  Wysłano: ".date("d.m.Y - H:i:s")."";
  38.  
  39. $headers = "Content-type: text/plain; charset=windows-1250";
  40.  
  41.  if(@mail($email, "E-Mail ze strony ...", $text, $headers))
  42.  ?> <font color="green"><?php
  43.  echo 'E-mail został wysłany';}
  44.  else
  45. echo 'ERROR: E-mail nie został wysłany.';?></font><?php
  46.  
  47.  
  48. ?>
  49.  
  50. <form method="post">
  51. <table border="1" width="90%" cellspacing="1" cellapdding="3" align="center">
  52.  <tr>
  53.  <td bgcolor="#CCE6FF" colspan="2" align="center">Formularz kontaktowy<br>&nbsp</td>
  54.  </tr>
  55.  <tr>
  56.  <td bgcolor="#CCE6FF" width="35%" align="right">Rodzaj &nbsp<br> zapytania: &nbsp</td>
  57.  <td bgcolor="#CCE6FF" width="55%">
  58.  <select name="zapytanie" class="select">
  59.  <option value="zukos220@interia.pl" style="background-color: #CCE6FF">dział sprzedaży</option>
  60.  <option value="zukos220@interia.pl" style="background-color: #CCE6FF">sekretariat</option>
  61. </select> <br />
  62.  </td>
  63.  </tr>
  64.  <tr>
  65.  <td bgcolor="#CCE6FF" align="right">Imię i nazwisko: &nbsp</td>
  66.  <td bgcolor="#CCE6FF">
  67.  <input type="text" style="background-color: #8FA0B0" name="imie">
  68.  </td>
  69.  </tr>
  70.  <tr>
  71.  <td bgcolor="#CCE6FF" align="right">e-mail: &nbsp</td>
  72.  <td bgcolor="#CCE6FF">
  73.  <input type="text" style="background-color: #8FA0B0" name="email">
  74.  </td>
  75.  </tr>
  76.  <tr>
  77.  <td bgcolor="#CCE6FF" align="right">Treść &nbsp<br> wiadomości: &nbsp</td>
  78.  <td bgcolor="#CCE6FF">
  79.  <textarea style="background-color: #8FA0B0" name="tresc" cols="40%" rows="5"></textarea>
  80.  </td>
  81.  </tr>
  82.  <tr>
  83. <td bgcolor="#CCE6FF" colspan="2" align="center">
  84. <input type="submit" name="SUBMIT" value="Wyślij">
  85. </td>
  86. </tr>
  87. </table>
  88. </form>
  89.  
  90. </body>
  91.  
  92. </html>
PawelC
zobacz czy niema ich w folderze spam ponieważ ja też tak kiedyś miałem że wysłało poprawnie i czekałem w nieskończoność a wiadomość znalazłem w folderze spam. Skoro wszystko działa i wyświetla to błąd raczej jest gdzie indziej niż w kodzie.
porady-it.pl
Kod podany był prawidłowy jednak zapomniałeś pozamykać instrukcje warunkowe. Poniżej zamieszczam poprawny kod. Zauważyłem jeszcze jeden błąd w kodzie mianowicie e-mail był wysyłany na adres osoby wysyłającej e-mail zmieniłem to wpisując adres [zmoderowane-na-prosbe] oczywiście adres ten możesz zmienić na dowolny inny. Zastanawia mnie także czemu przepisujesz wartości zmiennych z tablicy POST do nowych zmiennych questionmark.gif

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=windows-1250" />
  5. <title>[zmoderowane-na-prosbe]</title>
  6. <link rel="stylesheet" type="text/css" href="style.css" />
  7. </head>
  8.  
  9. <body>
  10.  
  11. <font face="Trebuchet MS">
  12. <p><b>KONTAKT:</b></p><br>
  13.  
  14. <p>[zmoderowane-na-prosbe]</p>
  15. <p>J. Branicki, J. Chrapkowski, J. Prywiński, Sp. J.</p>
  16. <p>Ul. Chodkiewicza 15</p>
  17. <p>85-065 Bydgoszcz</p>
  18. <p>tel: +48 52 325 12 86, fax: +48 52 325 12 85,</p>
  19. <p><a href="mailto:[zmoderowane-na-prosbe]" >e-mail: [zmoderowane-na-prosbe]</a></p>
  20. </font>
  21. <br><br><br><br><br>
  22.  
  23. <?php
  24.  
  25. $imie = $_POST['imie'];
  26. $email = $_POST['email'];
  27. $tresc = $_POST['tresc'];
  28. $zapytanie = $_POST['tresc'];
  29.  
  30. if($imie && $email && $tresc && $zapytanie) {
  31. $text = "
  32.  Imie: $imie
  33.  
  34.  E-Mail: $email
  35.  
  36.  Tresc: $tresc
  37.  
  38.  ---------------
  39.  Wysłano: ".date("d.m.Y - H:i:s")."";
  40.  
  41. $headers = "Content-type: text/plain; charset=windows-1250";
  42.  
  43. if(@mail('[zmoderowane-na-prosbe]', "E-Mail ze strony [zmoderowane-na-prosbe], $text, $headers)) 
  44. echo '<font color="green">E-mail został wysłany</font>';
  45. else
  46. echo 'ERROR: E-mail nie został wysłany.';
  47.  
  48. } elseif((empty($imie) or empty($email) or empty($zapytanie) or empty($tresc)) and (isset($imie) or isset($email) or isset($zapytanie) or isset($tresc))) {
  49.  ?> <font color="green"><br><?php echo 'Wypełnij wszystkie pola formularza!';
  50. ?></font><?php
  51. }
  52.  
  53. ?>
  54.  
  55. <form method="post">
  56. <table border="1" width="90%" cellspacing="1" cellapdding="3" align="center">
  57.  <tr>
  58.  <td bgcolor="#CCE6FF" colspan="2" align="center">Formularz kontaktowy<br> </td>
  59.  </tr>
  60.  <tr>
  61.  <td bgcolor="#CCE6FF" width="35%" align="right">Rodzaj <br> zapytania: </td>
  62.  <td bgcolor="#CCE6FF" width="55%">
  63.  <select name="zapytanie" class="select">
  64.  <option value="[zmoderowane-na-prosbe]" style="background-color: #CCE6FF">dział sprzedaży</option>
  65.  <option value="[zmoderowane-na-prosbe]" style="background-color: #CCE6FF">sekretariat</option>
  66. </select> <br />
  67.  </td>
  68.  </tr>
  69.  <tr>
  70.  <td bgcolor="#CCE6FF" align="right">Imię i nazwisko: </td>
  71.  <td bgcolor="#CCE6FF">
  72.  <input type="text" style="background-color: #8FA0B0" name="imie">
  73.  </td>
  74.  </tr>
  75.  <tr>
  76.  <td bgcolor="#CCE6FF" align="right">e-mail: </td>
  77.  <td bgcolor="#CCE6FF">
  78.  <input type="text" style="background-color: #8FA0B0" name="email">
  79.  </td>
  80.  </tr>
  81.  <tr>
  82.  <td bgcolor="#CCE6FF" align="right">Treść <br> wiadomości: </td>
  83.  <td bgcolor="#CCE6FF">
  84.  <textarea style="background-color: #8FA0B0" name="tresc" cols="40%" rows="5"></textarea>
  85.  </td>
  86.  </tr>
  87.  <tr>
  88. <td bgcolor="#CCE6FF" colspan="2" align="center">
  89. <input type="submit" name="SUBMIT" value="Wyślij">
  90. </td>
  91. </tr>
  92. </table>
  93. </form>
  94.  
  95. </body>
  96. </html>
Oscar_83
Zmieniłem kod na ten poprawiony przez Was, wysłałem emaila ok 15 minuit temu i jak narazie nic nie ma (nic nie doszło).
porady-it.pl
Witam,

To już nie wina skryptów właśnie przetestowałem skrypt na serwerach kei.pl i działa bez zarzutów smile.gif
Oscar_83
W takim razie to jest wina serwera?? hmm serwer i domena są płatne, więc powinno być wszystko oki.

Faktycznie, sprawdziłem na innym serwerze i też jest wszystko wporządku, e-maile dochodzą, a strona po kliknięciu na wyślij przeładowuje się bardzo szybko a na tym płatnym trwa to dosyć długo i nic nie dochodzi :/. Hmm w takim razie co mam zrobić żeby na tamtym serwerze działało (na tym płatnym)? skontaktować się z nimi? co powiedzieć?
porady-it.pl
Skontaktuj się z nimi i opisz dokładnie problem. Przede wszystkim poinformuj ich że wysyłając e-maile przez funkcję mail e-maile nie trafiają do adresata. W razie próby zwalenia winy na skrypty mów że testowałeś to na innych serwerach i że działa ok.
Oscar_83
Wielkie dzięki wszystkim za pomoc i porady
Pozdrawiam
PS: (czekam na odpowiedź gościa od serwerów, zobaczymy co powie)
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.