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

Problem z funkcją mail()

Object Storage Arubacloud
0 głosów
298 wizyt
pytanie zadane 26 stycznia 2017 w PHP przez aragorni22 Nowicjusz (200 p.)

Cześć

Muszę stworzyć formularz PopUp kontatku, który tam po wypełnieniu pół (nie musi być jakaś super walidacja danych) wysyła email potwierdzajacy na ten podany w formularzu i na jeszcze jeden email dodatkowy.

Formularz wygląda tak:

div class="modal fade" id="contact" role="dialog">
    <div class="modal-dialog">
        <div class="modal-content">
            <form class="form-horizontal" method="post" action="mail.php">
                <div class="modal-header">
                <div class="number"> <h4 style="text-align: center">Napisz do nas!</h4></div>
                <div class="modal-body">
                    <div class="form-group">
                        <label for="firstName" class="col-lg-2 control-label">Imię</label>
                        <div class="col-lg-10">
                            <input type="text" class="form-control" id="firstName" name="imie" placeholder="Wpisz swoje imię"><br/>
                        </div>
                        <label for="lastName" class="col-lg-2 control-label">Nazwisko</label>
                        <div class="col-lg-10">
                            <input type="text" class="form-control" id="lastName" name="nazwisko" placeholder="Wpisz swoje nazwisko"><br/>
                        </div>
                        <label for="email" class="col-lg-2 control-label">Twój email</label>
                        <div class="col-lg-10">
                            <input type="email" class="form-control" id="email" name="email" placeholder="Wpisz swoje e-mail"><br/>
                        </div>
                        <label for="telephone" class="col-lg-2 control-label">Telefon</label>
                        <div class="col-lg-10">
                            <input type="text" class="form-control" id="telephone" name="telefon" placeholder="Wpisz swój nr tel"><br/>
                        </div>
                        <label for="msg" class="col-lg-2 control-label">Twoja wiadomość</label>
                        <div class="col-lg-10">
                            <textarea class="form-control" rows="10" name="wiadomosc"></textarea>
                        </div>

                        <button class="btn btn-primary" type="submit" name="submit" value="send">Wyślij</button>

                    </div>
                </div>
                <div class="modal-footer">
                    <a class="btn btn-btn-default" data-dismiss="modal">Zamknij</a>
                </div>
                </div>
            </form>
        </div>
    </div>
</div>

a skryt php tak :


<?php

if(($_SERVER['REQUEST_METHOD'] === 'POST') && isset($_POST['imie']) && isset($_POST['nazwisko']) && isset($_POST['email']) && isset($_POST['telefon']) &&
isset($_POST['wiadomosc']) && isset($_POST['submit'])) {
    $imie = $_POST['imie'];
    $nazwisko = $_POST['nazwisko'];
    $email = $_POST['email'];
    $telefon = $_POST['telefon'];
    $wiadomość = $_POST['wiadomosc'];
} else {
    echo "Nie uzupełniłeś pól formularza";
}

$message = 'Dziękujemy za wysłanie formularza!';

$sender = mail($email1, "Wiadomość zwrotna", $message);

if($sender){
    echo "Wiadomość wysłana";
} else {
    echo "Błąd podczas wysyłania";
}

 

Email zwroty nie przychodzi po wpisaniu swojego emaila.. Najdziwnie jest to, że potwierdzenie "Wiadomośc wysłana" pokazuje się.

z góry dzięki za pomoc

komentarz 26 stycznia 2017 przez xmentor Nałogowiec (49,520 p.)

1 odpowiedź

+1 głos
odpowiedź 26 stycznia 2017 przez Arkadiusz Waluk Ekspert (287,950 p.)

Bo z funkcją mail() bywają takie dziwne problemy. Nie widzę nigdzie nagłówków wiadomości, może to jest problem i dlatego nie dochodzi. Sprawdzałeś spam? Możliwe że tam wpada.

Lepiej jest użyć jednej z bibliotek SwiftMailer lub PHPMailer i wysyłać wiadomości przez STMP. Zakładasz zwykłą skrzynkę na dowolnym serwerze (własny, Gmail, WP, itd.) i możesz z niej normalnie wysyłać.

Jeśli bardzo zależy Ci na użyciu czystego mail() to spróbuj użyć przykładu z tej strony, na samym dole. Podmień tylko kodowanie z iso na utf-8, ewentualnie dostosuj nagłówki jakie tam są.

PS tak poza tym wysyłasz maila na adres ze zmiennej $email1, a w formularzu przypisujesz maila do zmiennej $email. To na pewno jest dobrze? W $email1 jest to co być powinno?

komentarz 26 stycznia 2017 przez aragorni22 Nowicjusz (200 p.)
Hej

właśnie dobrze było uzyc tej funkcji bo to ma tylko email zwroty wysylac tak na prawde nic wiecej. A z ta zmienna $email1 to mój błąd bo tam róznych sztuczek próbowałem, ale sprawdziłem to nie w tym problem
komentarz 26 stycznia 2017 przez Arkadiusz Waluk Ekspert (287,950 p.)
To tak jak napisałem, spróbowałbym ustawić odpowiednie nagłówki jak w podanym przykładzie.

Uruchamiasz ten kod na serwerze gdzie skonfigurowane jest mail? Na localhoście bez konfiguracji nie zadziała, to mam nadzieję że wiesz.
komentarz 26 stycznia 2017 przez aragorni22 Nowicjusz (200 p.)
Hej

Tak uruchamiam to na localhoscie, na apachu2. Co masz na mysli mowiac ze bez konfiguracji nie zadzaiala mi to?

Dzięki wielkie
komentarz 26 stycznia 2017 przez Arkadiusz Waluk Ekspert (287,950 p.)
No jakoś te maile się muszą przecież wysyłać, a PHP samo w sobie nie posiada serwera mailowego, stąd proponowałem wyżej użycie jednej z bibliotek i SMTP.

Jeśli koniecznie upierasz się przy mail i to na localhoście:
http://stackoverflow.com/a/18185233/6489188
http://stackoverflow.com/a/16837929/6489188
I szczerze mówiąc od siebie niewiele więcej doradzę bo się samemu w konfigurowanie tego nie bawiłem.

Podobne pytania

0 głosów
3 odpowiedzi 385 wizyt
pytanie zadane 29 września 2015 w PHP przez jedrus_91 Użytkownik (760 p.)
0 głosów
1 odpowiedź 510 wizyt
+2 głosów
2 odpowiedzi 258 wizyt
pytanie zadane 30 czerwca 2015 w PHP przez Kuba Rycyk Nowicjusz (220 p.)

92,576 zapytań

141,426 odpowiedzi

319,651 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!

...