• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Nie dochodzą mi maile wysyłane przez formularz na stronie www

Object Storage Arubacloud
0 głosów
1,482 wizyt
pytanie zadane 7 października 2017 w PHP przez BlackCat_ Początkujący (310 p.)

Hej:) może ktoś z Was będzie wiedział co powinnam poprawić..

Mam problem z formularzem na www - nie wysyłają się w ogóle maile ze strony na moją pocztę.

Cała strona zrobiona jest na szablonie https://html5up.net/big-picture

Część kodu html z pliku index który dotyczy wyłącznie formularza:

<!-- Contact -->
			<section id="contact" class="main style3 secondary">
				<div class="content">
					<header>
						<h2>Masz pytanie? </h2>
						<p>Jeśli tak, to chętnie na nie odpowiem :) </p>
						<p>Proszę wypełnij formularz kontaktowy, postaram się odpowiedzieć tak szybko jak to możliwe. </p> 
					</header>
					<div class="box">
						<form method="post" action="mail.php">
							<div class="field half first"><input type="text" name="name" placeholder="Imię i nazwisko" required/></div>
							<div class="field half"><input type="email" name="email" placeholder="Email" required/></div>
							<div class="field"><textarea name="message" placeholder="Treść wiadomości..." rows="6" required></textarea></div>
							<ul class="actions">
								<li><input type="submit" value="Wyślij wiadomość" /></li>
							</ul>
						</form>
					</div>
				</div>
			</section>

Stworzyłam plik mail.php wrzuciłam go do folderu gdzie znajduje się plik index.

Kod pliku mail.php wygląda następująco:

<?php

$to      = '***@*************.com';
$name    = $_POST['name'];
$email   = $_POST['email'];
$subject = 'Nowy e-mail od ' . $name . ' (' . $email . ')';
$message = $_POST['message'];
$headers = 'From: ' . $name . ' (' . $email . ')';
$headers .= 'Content-Type: text/html; charset=utf-8';

mail($to, $subject, $message, $headers);

?>

W miejscu ****** wstawiony jest poprawnie napisany cały adres mojego maila.

Wszystkie pliki wrzuciłam na serwer, strona wyświetla się poprawnie, ale po wypełnieniu całego formularza i kliknięciu wyślij cała strona się odświeża i pokazuje się od intro. Do tego w pasku przeglądarki w adresie pojawia się cały link strony z dodatkowym napisem /mail.php

Czy ktoś z Was wie może gdzie popełniłam błąd i jak mogę to poprawić, żeby te maile z formularza dochodziły na moją pocztę? :)

1
komentarz 8 października 2017 przez xmentor Nałogowiec (49,520 p.)
Najlepiej uzyj PHPMailer (lub coś podobnego), na githubie będą również przykłady.
1
komentarz 8 października 2017 przez Arkadiusz Waluk Ekspert (287,950 p.)

Wszystkie pliki wrzuciłam na serwer, strona wyświetla się poprawnie, ale po wypełnieniu całego formularza i kliknięciu wyślij cała strona się odświeża i pokazuje się od intro.

Trochę nie rozumiem, to znaczy że kod PHP w ogóle się nie wykonuje? Bo nie widzę w mail.php żadnego przekierowania, które wysyłałoby maila i wracało na stronę główną. A więc w chwili obecnej powinno zadziałać to tak, że po wysłaniu formularza wiadomość jest wysyłana i widzisz pustą stronę, trzeba ręcznie wrócić.

I popieram przedmówcę, mail() jest problematyczne, weź PHPMailera lub SwiftMailera.

komentarz 8 października 2017 przez BlackCat_ Początkujący (310 p.)
Właśnie w tym jest cały problem, że te wiadomości w ogóle się nie wysyłają na moją pocztę.

Nic kompletnie nie przychodzi, a jedyna zmiana jaka jest po kliknięciu na formularzu "wyślij wiadomość" to to, że cała strona się odświeża + w linku na pasku od mozilli dochodzi "/mail.php".

To odświeżanie strony może zostać tylko gdyby jeszcze te wiadomości się wysyłały poprawnie.

Dziękuje za podpowiedź :) muszę poczytać o tym PHPMailer i SwiftMailer, być może to właśnie rozwiąże cały problem.
komentarz 8 października 2017 przez Arkadiusz Waluk Ekspert (287,950 p.)

Jeśli w ogóle nie wykonuje Ci się kod z pliku mail.php to czego byś nie użyła, i tak mail nie zostanie wysłany.

<form method="post" action="mail.php">

To niby wygląda dobrze, powinien wysyłać. Spróbuj w pliku mail.php wstawić np. die('test'); (natychmiastowe zabicie skryptu i wyświetlenie napisu) i sprawdzić czy się pokaże. Jeśli nie to w ogóle nie wchodzi do tego pliku i wtedy trzeba problemu szukać zupełnie gdzie indziej.

komentarz 8 października 2017 przez BlackCat_ Początkujący (310 p.)

Napis test po wypełnieniu formularza pojawił się poprawnie

komentarz 8 października 2017 przez Arkadiusz Waluk Ekspert (287,950 p.)
Czyli jest w porządku, kod z tego jednak się wykonuje. Nie rozumiem więc czemu jak to mówiłaś formularz jakby się odświeża, skoro w pliku mail przekierowania nie widzę... No ale ok. Robisz to localhoście, czy też na jakimś serwerze? Z localhosta mail() bez odpowiedniej konfiguracji Ci nie zadziała. I tu Twoje problemy rozwiązał by PHPMailer/SwiftMailer, które to mogą słać przez SMTP (czyli podajesz dane dowolnego konta pocztowego i z niego wysyła Ci maile).
komentarz 8 października 2017 przez BlackCat_ Początkujący (310 p.)
Ja parę razy starałam się poprawić plik php znajdując jakieś inne rozwiązania i już właśnie się nie odświeża jak wczoraj tylko po kliknięciu na "wyślij wiadomość" pojawia się cała pusta strona. Pewnie dlatego i ten test zadziałał poprawnie.

Robię na serwerze, ale przez to, że nie potrafię programować, a jedynie sugeruję się przykładami, podstawianiem kodów według własnej strony to nie wszystko mi wychodzi niestety :)

Zastanawiam się czy nie lepiej będzie po prostu zrezygnować z formularza, a na jego miejsce wrzucić zwyczajnie maila, telefon itp bo przeglądając ten phpmailer trochę się wystraszyłam.. muszę to na spokojnie ogarnąć co zajmie mi pewnie trochę czasu więc na chwilę obecną dziękuję bardzo za pomoc! :)
komentarz 8 października 2017 przez Arkadiusz Waluk Ekspert (287,950 p.)
Cóż, jak chcesz. Jeśli faktycznie nie umiesz nic programować i tylko zmieniasz coś na czuja z gotowców to sorki, ale to się nigdy nie sprawdza. Programowanie to umiejętność logicznego myślenia, rozwiązywania programistycznych problemów, szukania błędów. To wymaga znajomości tego co robi kod, od podstaw. No i doświadczenia, początki zawsze są trudne. Także nie wiem za bardzo co Ci powiedzieć, mogę ewentualnie zadeklarować chęć pomocy jeśli tylko będę w stanie - tak jak chyba z resztą sporo osób na forum.

1 odpowiedź

0 głosów
odpowiedź 8 października 2017 przez KoruS Obywatel (1,630 p.)
Jeżeli dobrze rozumiem kod to ty próbujesz pobrać e-mail od użytkownika i wpisać go jako e-mail wyjściowy w nagłówkach. To nie zadziała. Dlaczego? Z prostego powodu, aby wysłać e-mail z konta poczty użytkownika, który wypełnia formularz musiał byś się wejść na jego pocztę. szczerze mówiąc nie wiem czy w ogóle byś dał radę w ten sposób wysłać cokolwiek bo mailer w php chyba obsługuje poczty tylko serwera na których się znajduje się skrypt. Musisz to tak zrobić, że musisz utworzyć pocztę na serwerze (domenie). Np. jeżeli masz serwer np. na nazwa.pl albo no nwm cba to musisz w menu znaleźć zakładkę poczta utworzyć nową pocztę. Jeżeli masz na nazwa.pl to by strwożyć taką pocztę wejdź w active.admin (admin.nazwa.pl) zaloguj się i w menu u góry po prawej pierwsza opcja to poczty klikasz i masz dodaj pocztę, dodajesz i poprawiasz kod.  Jeżeli masz na cba to nie wiem jak tam jest, a jeżeli na vps to musisz poszperać w necie, bo ja na razie nie korzystałem z vps. Gdy dodasz pocztę to musisz poprawić kod:

$headers = 'From: ' . $name . ' (' . $email . ')';   -  twój kod

to musisz zapisać to tak:

$headers = 'From:  PRZYKŁADOWY_NADAWCA <e-mial>';

co w praktyce będzie wyglądało np tak:  (zakładamy, że twoja strona to jakiś sklep internetowy o wdzięcznej nazwie sklep, a twoja domena to sklep.pl)

$headers = 'From:  Sklep.pl <kontakt@sklep.pl>';
komentarz 8 października 2017 przez BlackCat_ Początkujący (310 p.)
Dziękuje, że starałeś się jak najlepiej mi to wytłumaczyć :)

Niestety mimo podmiany tej części kodu ciągle pojawia mi się ten sam problem - wypełniając poprawnie cały formularz na stronie nadal nie dostaję wiadomości na swojego maila. Odświeża się tylko cała strona i pojawia się od nowa intro. Masz może jeszcze jakiś pomysł co mogłabym zmienić, żeby ten formularz sprawnie chodził?

Ja na php się nie znam kompletnie.. a cały ten kod wyżej robiłam na podstawie tego https://www.youtube.com/watch?v=A5aNysB9JnU&t

Domena i poczta założone są na home.pl a cała strona będzie działała jako portfolio:)

Podobne pytania

+3 głosów
3 odpowiedzi 1,288 wizyt
pytanie zadane 5 sierpnia 2019 w PHP przez AdamSiekierski Dyskutant (8,340 p.)
+1 głos
1 odpowiedź 183 wizyt
pytanie zadane 11 lutego 2022 w PHP przez ZnaQu Nowicjusz (130 p.)
0 głosów
2 odpowiedzi 324 wizyt
pytanie zadane 21 września 2018 w PHP przez Q7V Gaduła (4,250 p.)

92,576 zapytań

141,426 odpowiedzi

319,652 komentarzy

61,961 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...