Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Problem z funkcją mail()
Forum PHP.pl > Forum > PHP
felixk
Witam, tak jak w temacie. Problem polega na tym, że nie nie mogę/nie umiem dodać takiej informacji do treści wysyłanego maila za pomocą formularza, który wypełniłby pole Od. Czyli poprostu chciałbym mieć taka konstrukcje:

Kod
Od: cos tam
Temat: jakis tam
Tresc: jakas tam


Mój fragment skryptu:

  1. <?php
  2. $site_name = "Nazwa strony";
  3.    $headers = 'From: Formularz' . "r\n" .
  4.             'Reply-To: email do odp' . "r\n" .
  5.             'X-Mailer: PHP/' . phpversion();
  6.    $site_email = "mail na który wysyłamy";
  7.    $data = gmdate("d-m-Y"); //data wysłania
  8.    $czas = gmdate("H:i"); // godzina wysłania
  9. ?>


Funkcja wysyłająca:
  1. <?php
  2. mail("$email", "$site_name Dziękujemy za zainteresowanie",
  3. "Dziękujemy Ci $imie za przesłanie emaila do nas. Postaramy się odpowiedzieć na niego w możliwie najkrótszym czasie","$headers");
  4. ?>


O tyle o ile umiem uzyskac, przekazac tresc z formularza i ustawic wskazany email na który ma to wszystko dojsc to juz nie daje sobie z rady z polem Od

Z góry dziekuje za pomoc

PS: używałem wzorów z manuala PHP i dalej nie działa
blooregard
Spróbuj zostawic samo "\n" (bez \r)
felixk
Nie dochodzi mi w ogóle email mad.gif . Nie wiem jak masz jakiś pomysł na inny układ tego skryptu to jestem chętny na poznanie tegoż pomysłu.
ayeo
Witam!

Może zajrzysz do manuala i sprawdzisz jakie parametry i w jakiej kolejności przyjmuje funkcja mail();

// edit
mój błąd, na codzień korzystam z klasy, która przyjmuje inne parametry niż natywna funkcja mail(); stąd ta pomyłka. Przepraszam i zwracam honor.


Pozdrawiam!
blooregard
  1. <?php
  2. mail("$email", "$site_name Dziękujemy za zainteresowanie",
  3. "Dziękujemy Ci $imie za przesłanie emaila do nas. Postaramy się odpowiedzieć na niego w możliwie najkrótszym czasie","$headers");
  4. ?>


Wywal cudzysłowy z $email i $headers.
felixk
Wygląda to niby tak jakby admini zablokowali mi nagłówki maili, bo jak wywale całkiem nagłówki to maile zaczynają dochodzić mad.gif
jareeny
Admini nie mogą zablokować części funkcji winksmiley.jpg
felixk
To nie wiem, albo ja jestem tak tępy albo coś z tym serwerem jest nie tak. A może by wszystkie części maila wrzucić w zmienną coś na kształt

mail($email, $temat, $tresc, $naglowki)

Mogłoby pomóc Waszym zdaniem questionmark.gif
mrok
może przetestuj PHPmailer-a
znajdziesz go tu
felixk
Dobra przerobiłem nieco ten skrypt. Oceny i poprawki mile widziane, bo niestety nagłówka From to on dalej nie dodaje mad.gif
  1. <?php
  2. $site_name = "Strona";
  3.    $subject = "$site_name Formularz kontaktowy";
  4.    $body = "Wiadomosc przesłana dnia $data o godzinie $czas
  5. Przez: $imie
  6. Email: $email
  7. Temat: $temat
  8. Treść: $opinia
  9. Przeglądarka: $HTTP_USER_AGENT
  10. IP: $REMOTE_ADDR";
  11. $headers  = "MIME-Version: 1.0r\n";
  12. $headers .= "Content-type: text/html; charset=iso-8859-2r\n";
  13. $headers .= "From: Formularzr\n";
  14.    $site_email = "email";
  15.    $data = gmdate("d-m-Y");
  16.    $czas = gmdate("H:i");
  17.  
  18. function poprawny_email ( $var )
  19. {
  20.   return preg_match ( '/^[_.0-9a-z-]+@([_0-9a-z-]+.)+[a-z]{2,4}$/', $var );
  21. }
  22.  
  23. $error = '<div class="error">';
  24. if ( empty ( $imie ) ) $error .= 'Pole z imieniem nie zostało wypełnione.<br />';
  25. if ( empty ( $email ) ) $error .= 'Pole z adresem email nie zostało wypełnione.<br />';
  26. if ( empty ( $opinia ) ) $error .= 'Pole z treścią wiadomości nie zostało wypełnione.<br />';
  27. if ( !empty ( $email ) && !poprawny_email ( $email ) ) $error .= 'Adres email jest niepoprawny.<br />'; $error .= '<br><a href="java script:history.back()">wróć</a></div>';
  28. if ( poprawny_email ( $email ) && !empty ( $imie ) && !empty ( $opinia ) )
  29. {
  30. header("Location: /dziekujemy.html");
  31. mail("$site_email", "$subject", "$body", $headers);
  32. }
  33. else
  34. {
  35.   echo "$error";
  36. }
  37.  
  38. ?>
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.