Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] Problem z wysyłaniem maili.
Lesiak
post
Post #1





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 1.09.2011

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


Witam. Na początek warto spomnieć, że w PHP jestem początkujący. Moja dotychczasowa wiedza oparta jest na znajomości: operatorów, zmiennych, stałych, tablicy GET I POST, IF, else, elseif, Switch...

Dziś stworzyłem mój 3 skrypt, który... działa poprawnie na hostingu xaa.pl
  1. <?php
  2. $do = $_POST['email'];
  3. $temat = $_POST['temat'];
  4. $wiadomosc = $_POST['tresc'];
  5. $od = $_POST['od'];
  6. $nick = $_POST['nick'];
  7. mail($do,$temat,$wiadomosc,$od,$nick);
  8. echo "Mail zostal wyslany.";
  9. ?>


i...
  1. <form method="post" action="wyslij.php">
  2. E-mail ofiary: <br> <input type="text"
  3. name="email" />
  4. <br>
  5. Twoj zmyslony E-mail: <br> <input type="text"
  6. name="od" />
  7. <br>
  8. Temat: <br> <input type="text"
  9. name="temat" />
  10. <br>
  11. Nick: <br> <input type="text"
  12. name="nick" />
  13. <br>
  14. Tresc: <br> <textarea name="tresc" cols="10" rows="10">Zmaz to i wpisz swoja tresc...</textarea>
  15. <input type="submit" value="Wyslij" />
  16. </form>


W tym problem, że niezadawala mnie działanie tego skryptu. To znaczy, gdy wysyłam fakemaila, to dochodzi mi na pocztę, ale w OD podaje mój adres loginu z XAA.PL. Próbowałem zmienić hosting i tak zroibiłem, przenosząc się na YOYO.PL, lecz tam, gdy wysyłam skrypt, nie dochodzi do mojej skrzynki... więc tu pytanie: czy to wina skryptu, czy hostingu?
Go to the top of the page
+Quote Post
-jarek-
post
Post #2





Grupa: Zarejestrowani
Postów: 14
Pomógł: 2
Dołączył: 26.05.2010

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


Skryptu.
Zobacz też czy serwer nie jest na platformie win. bo jak mnie pamięć nie myli to był jakiś problem z tą Windą.

  1.  
  2.  
  3. $host = $_SERVER['HTTP_HOST'];//pobiera host
  4. @mail("$email", "$host - Wiadomość od $imie_nazwisko", " $wiadomosc ", "Content-type: text; charset=iso-8859-2\r\nFrom:$email_nadawcy","-fnadawca@$SERVER_NAME");
  5. }


prosty przykład użycia.

Ten post edytował -jarek- 1.09.2011, 20:21:59
Go to the top of the page
+Quote Post
Lesiak
post
Post #3





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 1.09.2011

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


Jest na linuxie ;]

Jeżeli to wina skryptu, to co w nim jest źle? Nie proszę o napisanie gotowca, bo to nie miałoby sensu, tylko lekkie nakierowanie mnie na właściwą drogę (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
tolomei
post
Post #4





Grupa: Zarejestrowani
Postów: 450
Pomógł: 135
Dołączył: 18.11.2010
Skąd: Wschowa

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


Witam.

Zanim zadajemy pytanie sprawdzamy manual.
Nikt ani nic Cię lepiej nie "nakieruje".

mail()
W drugim przykładzie od góry znajdziesz odpowiedź.
Go to the top of the page
+Quote Post
Lesiak
post
Post #5





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 1.09.2011

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


Nic mi manuel nie mówi ;/

Mój skrypt wygląda tak:
  1. <?php
  2. $do = $_POST['email'];
  3. $temat = $_POST['temat'];
  4. $wiadomosc = $_POST['tresc'];
  5. $od = $_POST['od'];
  6. $host = $_SERVER['nick'];
  7. @mail("$do", "$host - Wiadomość od $od", " $wiadomosc ", "Content-type: text; charset=iso-8859-2\r\nFrom:$od","-$nick@$od");
  8. echo "Mail zostal wyslany.";
  9. ?>


nie wyświetla błędnego komunikatu, ale nie dociera email na pocztę. Co znowu źle robię? Podejrzewam, że coś z $host = $_SERVER['nick'].

Coś próbowałem z bool mail ( string $do , string $temat , string $treść [, string $dodatkowe_nagłówki [, string $dodatkowe_parametry ]] ), ale nie bardzo mi wychodziło.

Ten post edytował Lesiak 2.09.2011, 16:32:08
Go to the top of the page
+Quote Post
Ociu
post
Post #6





Grupa: Moderatorzy
Postów: 1 566
Pomógł: 37
Dołączył: 14.05.2003
Skąd: Kraków




Wywal ten @ przez mail() i pokaż co wypisało na ekranie.


Przenoszę do przedszkola.
Go to the top of the page
+Quote Post
hondek
post
Post #7





Grupa: Zarejestrowani
Postów: 355
Pomógł: 50
Dołączył: 20.08.2007
Skąd: Częstochowa

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


Bo może manuel nie znam manuala?(IMG:style_emoticons/default/biggrin.gif)
Go to the top of the page
+Quote Post
Lesiak
post
Post #8





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 1.09.2011

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


Nie wyświetla żadnego błędu, jednak mail nie dochodzi :/ Co w tym skrypcie jest znowu nie tak?

Pomoże ktoś?
Go to the top of the page
+Quote Post
CuteOne
post
Post #9





Grupa: Zarejestrowani
Postów: 2 958
Pomógł: 574
Dołączył: 23.09.2008
Skąd: wiesz, że tu jestem?

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


A manuel włączył raportowanie błędów?

ps. a próbowałeś wysłać prostego maila??
  1. <?php
  2.  
  3. $message = "dsfdsfdsf dsfdsfsdf";
  4.  
  5. try {
  6.  
  7. mail('email_odbiorcy@domena.com', 'Tytuł', $message);
  8. }
  9. catch(Exception $e) { echo $e->getMessage(); }
  10. ?>


Ten post edytował CuteOne 3.09.2011, 21:21:41
Go to the top of the page
+Quote Post
Lesiak
post
Post #10





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 1.09.2011

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


Dochodzi email, ale nie do końca jestem z tego zadowolony.
Chciałbym, by to przesłało info z formularza. Trochę edytowałem:
  1. <?php
  2.  
  3. $message = $_POST['email'];
  4.  
  5. try {
  6.  
  7. mail($_POST['od'], $_POST['temat'], $message);
  8. }
  9. catch(Exception $e) { echo $e->getMessage(); }
  10. ?>]


Nie wyświetla błedów. (wcześniej wyświetlało, to usunąłem znaczniki ' ') teraz nic nie wyświetla, ale email nie dochodzi.

Trochę edytnąłem i końcowo skrypt wygląda tak:
  1. <?php
  2.  
  3. $message = $_POST['email'];
  4. $od = $_POST['od'];
  5. $temat = $_POST['temat'];
  6. $naglowek = $_POST['nick'];
  7.  
  8.  
  9. try {
  10.  
  11. mail($message, $od, $temat, $naglowek);
  12. }
  13. catch(Exception $e) { echo $e->getMessage(); }
  14. ?>


Mail dochodzi i co dziwne, jako TEMAT wyświetla EMAIL, który wpisałem do formularza, w OD jest adres serwera XAA.PL.
Go to the top of the page
+Quote Post
LewyM1
post
Post #11





Grupa: Zarejestrowani
Postów: 44
Pomógł: 0
Dołączył: 22.02.2011
Skąd: Sierpc

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


Wystarczy poprzestawiać zmienne. Czytałeś manuala?
Go to the top of the page
+Quote Post
tolomei
post
Post #12





Grupa: Zarejestrowani
Postów: 450
Pomógł: 135
Dołączył: 18.11.2010
Skąd: Wschowa

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


Lesiak kolego...
Czytaj co ludzie do Ciebie piszą proszę.

Napisałem, że jest w manualu, w drugim przykładzie od góry.
A więc widzimy tam:

  1. <?php
  2. $to = 'nobody@example.com';
  3. $subject = 'the subject';
  4. $message = 'hello';
  5. $headers = 'From: webmaster@example.com' . "\r\n" .
  6. 'Reply-To: webmaster@example.com' . "\r\n" .
  7. 'X-Mailer: PHP/' . phpversion();
  8.  
  9. mail($to, $subject, $message, $headers);
  10. ?>


Czy widzisz jak zbudowane są nagłówki ?

Troszkę zmodyfikuję :

  1. <?php
  2. if(isset($_POST['email'])) {
  3. $email = $_POST['email'];
  4. $od = $_POST['od'];
  5. $temat = $_POST['temat'];
  6. $nick = $_POST['nick'];
  7. $tresc = $_POST['tresc'];
  8. // pamietaj o walidacji
  9.  
  10. $headers = 'From: '.$nick."\r\n" .
  11. 'Reply-To: '.$od;
  12.  
  13. if(mail($email, $temat, $tresc, $headers)) {
  14. echo 'Wiadomosc wyslana poprawnie.';
  15. } else {
  16. echo 'Wiadomosc nie zostala wyslana.';
  17. }
  18. }
  19. ?>


To, że odsyłam Cię do manuala to nie znaczy, że chcę Cię wysłać na drzewo.

Wystarczy chcieć.

Pozdro.

Ten post edytował tolomei 4.09.2011, 01:39:52
Go to the top of the page
+Quote Post
Lesiak
post
Post #13





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 1.09.2011

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


Dzięki, działa. Po prostu byłem zmęczony i źle popatrzyłem na manual. Ja patrzyłem nie na przykłady, tylko na treść od góry, stąd nic nie rozumiałem. Następnym razem będę wiedział, dzięki za pomoc.
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: 2.10.2025 - 17:24