1. Forum używa plików Cookies. Dowiedz się więcej o celu ich używania i możliwości zmiany ustawień Cookies w przeglądarce. Czytaj więcej...

ROZWIĄZANE Mail z formularza

Dyskusja w 'Hosting i domeny internetowe' rozpoczęta przez użytkownika malaczarnak, 7 Październik 2019.

  1. malaczarnak

    malaczarnak Początkujący

    Wiadomości:
    5
    Docenione treści:
    1
    Dzień dobry,
    Zanim przejdę do problemu to nadmienię, że sprawdziłam wszystkie tematy na tym forum jak i google. Wdrażałam je, ale niestety wszystkie możliwości, które znalazłam nie zadziałały.
    Na zewnętrznym serwerze wszystko działało bez zarzutu.

    Problem standardowy czyli mam formularz i dane z niego powinny iść na maila firmowego czyli dok@home.pl . No właśnie powinno. A nie idzie. Może coś przeoczyłam.
    Poniżej moje 2 próby:

    PHP:
    <?php
    require_once('class.phpmailer.php');

    $smtphost='serwerxxx.home.pl';
    $smtpport='587';
    $auth=true;
    $username='dok@domena.pl';
    $password='xxx';
    $from='dok@domena.pl';
    $fromname='domena';

    $to='katarzyna@gmail.com';

    $title "ABC - Rejestracja klienta";

    $htmlbody "
    <HTML>
    <HEAD>
    </HEAD>
    <BODY>
    <font size='3'><font face='Verdana'>
        <p>Nazwisko:<span style='color:blue;'>"
    .$_SESSION['collected']['surname']."</span></p>
        <p>Imię:<span style='color:blue;'>"
    .$_SESSION['collected']['name']."</span></p>
        <p>Telefon domowy:<span style='color:blue;'>"
    .$_SESSION['phoneHome']."</span></p>
        <p>Telefon firmowy:<span style='color:blue;'>"
    .$_SESSION['collected']['phoneWork']."</span></p>
        <p>E-mail:<span style='color:blue;'>"
    .$_SESSION['collected']['email']."</span></p>
        <p>Zgoda:<span style='color:blue;'>"
    .$_SESSION['collected']['check1']."</span></p>
    </font>
    </BODY>

    </HTML>"
    ;

    $mail = new PHPMailer;
    $mail->CharSet "UTF-8";
    $mail->isSMTP();
    $mail->Host=$smtphost;
    $mail->Port=$smtpport;
    $mail->SMTPAuth=$auth;
    $mail->Username=$username;
    $mail->Password=$password;
    $mail->SetFrom($from$fromname);
    $mail->addAddress($to);
    $mail->isHTML(true);

    $mail->Subject '=?utf-8?B?'.base64_encode($title).'?=';

    $mail->Body$htmlbody;
    $mail->AltBody=$plainbody;

    $mail->send()

    ?>
    i druga próba:
    PHP:
    <?php
    require_once('PHPMailer/class.phpmailer.php');

    $to      'katarzyna@gmail.com';
    $subject 'ABC - Rejestracja klienta';
    $message '<HTML>
    <HEAD>
    </HEAD>
    <BODY>
    <font size='
    3'><font face='Verdana'>
        <p>Nazwisko:<span style='
    color:blue;'>".$_SESSION['collected']['surname']."</span></p>
        <p>Imię:<span style='
    color:blue;'>".$_SESSION['collected']['name']."</span></p>
        <p>Telefon domowy:<span style='
    color:blue;'>".$_SESSION['phoneHome']."</span></p>
        <p>Telefon firmowy:<span style='
    color:blue;'>".$_SESSION['collected']['phoneWork']."</span></p>
        <p>E-mail:<span style='
    color:blue;'>".$_SESSION['collected']['email']."</span></p>
        <p>Zgoda:<span style='
    color:blue;'>".$_SESSION['collected']['check1']."</span></p>
    </font>
    </BODY>
    </HTML>'
    ;

    $headers   = array();
    $headers[] = 'MIME-Version: 1.0';
    $headers[] = 'Content-type: text/html; charset=iso-8859-1';
    $headers[] = 'To: katarzyna@gmail.com';
    $headers[] = 'From: katarzyna@domena.pl';
    $headers[] = 'Cc: dok@domena.pl';

    mail($to$subject$message$headers"-f dok@domena.pl");
    ?>
     
  2. LorK

    LorK Przyjaciel forum Beta-tester

    Wiadomości:
    1 013
    Docenione treści:
    88
  3. malaczarnak

    malaczarnak Początkujący

    Wiadomości:
    5
    Docenione treści:
    1
    Tak próbowałam i nic nie pomogło.
     
  4. LorK

    LorK Przyjaciel forum Beta-tester

    Wiadomości:
    1 013
    Docenione treści:
    88
    no to znaczy, że robisz coś źle.

    1. dostajesz zwrotki jakieś?
    2. czy z webmaila dochodzi? (tak kontrolnie ;) )
    3.
    a może masz filtr ustawiony by po kodowaniu wywalał? Czy tam nie powinno być iso-8859-2

    3. wklej cały kod jakiego używasz

    4. czy sprawdzałaś revDNS?

    5. czy na innego emaila niż gmail dochodzą emaile?
     
  5. malaczarnak

    malaczarnak Początkujący

    Wiadomości:
    5
    Docenione treści:
    1
    No właśnie wiem, że coś źle robię, ale nie widzę błędu.
    1. Dostaje info
    Kod:
    X.XXX.XX.XXX - - [07/Oct/2019:18:28:54 +0200] "GET /favicon.ico HTTP/1.1" 200 4614 "https://d-c.domena.pl/dok_mail.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36"
    
    czyli plik z mailem ładuje, ale w logach nie ma wyjścia z poczty mailowej. Zero ruchu

    PHP:
    <?php
    require_once('PHPMailer/class.phpmailer.php');

    $to      'katarzyna@gmail.com';
    $subject 'ABC - Rejestracja klienta';
    $message '<HTML>
    <HEAD>
    </HEAD>
    <BODY>
    <font size='
    3'><font face='Verdana'>
        <p>Nazwisko:<span style='
    color:blue;'>".$_SESSION['collected']['surname']."</span></p>
        <p>Imię:<span style='
    color:blue;'>".$_SESSION['collected']['name']."</span></p>
        <p>Telefon domowy:<span style='
    color:blue;'>".$_SESSION['phoneHome']."</span></p>
        <p>Telefon firmowy:<span style='
    color:blue;'>".$_SESSION['collected']['phoneWork']."</span></p>
        <p>E-mail:<span style='
    color:blue;'>".$_SESSION['collected']['email']."</span></p>
        <p>Zgoda:<span style='
    color:blue;'>".$_SESSION['collected']['check1']."</span></p>
    </font>
    </BODY>
    </HTML>'
    ;

    $headers   = array();
    $headers[] = 'MIME-Version: 1.0';
    $headers[] = 'Content-type: text/html; charset=UTF-8';
    $headers[] = 'To: katarzyna@gmail.com';
    $headers[] = 'From: katarzyna@domena.pl';
    $headers[] = 'Cc: dok@domena.pl';

    mail($to$subject$message$headers"-f dok@domena.pl");
    ?>
    HTML:
    <div id="page1">
        <div class="container">
            <center>
    
                <header>
                    <img src="images/header_2408.png" alt="header">
                </header>
    
                <section id="main">
    
                    <h2 class="padd-b-1"><b>DC</b></h2>
    
                    <form action="../dok_mail.php" method="post" id="form_page1">
                        <table border="0">
                            <tr>
                                <th colspan="4" class="alert alert-success">Informacje o Kliencie</th>
                            </tr>
                            <tr>
                                <td class="padd-tb-1"><label for="surname">Nazwisko<span class="star">*</span>:</label></td>
                                <td class="padd-tb-1"><input type="text" name="surname" id="surname" required value="<?php echo is('surname');?>"></td>
                                <td class="padd-tb-1"><label for="name">Imię<span class="star">*</span>:</label></td>
                                <td class="padd-tb-1"><input type="text" name="name" id="name" required value="<?php echo is('name');?>"></td>
                            </tr>
                            <tr>
                                <th colspan="4" class="alert alert-success">Telefony</th>
                            </tr>
                            <tr>
                                <td class="padd-t-1"><label for="phoneHome">Telefon I<span class="star">*</span>:</label></td>
                                <td class="padd-t-1"><input type="tel" name="phoneHome" id="phoneHome" required value="<?php echo is('phoneHome');?>" pattern="[0-9]{9}" placeholder="Format: 000000000" maxlength="9"></td>
                                <td class="padd-t-1"><label for="phoneWork">Telefon II:</label></td>
                                <td class="padd-t-1"><input type="tel" name="phoneWork" id="phoneWork" value="<?php echo is('phoneWork');?>" pattern="[0-9]{9}" placeholder="Format: 000000000" maxlength="9"></td>
                            </tr>
                            <tr>
                                <td class="padd-b-1"><label for="email">E-mail:</label></td>
                                <td colspan="3" class="padd-b-1"><input type="email" name="email" id="email" value="<?php echo is('email');?>" pattern="[a-z0-9._%+-]+@[a-z0-9.-]+\.[a-z]{2,}$"></td>
                            </tr>
                            <tr>
                                <td colspan="4">
                                    <table>
                                        <tr>
                                            <td><input type="checkbox" name="check1" id="check1" value="1" <?php if (isset($_SESSION['collected']['check1']) &&($_SESSION['collected']['check1'] =='1')) { ?> checked <?php } ?>></td>
                                            <td><label for="check1">Zapoznałem/łam się z Regulaminem Usługi oraz Polityką Prywatności i akceptuję jego warunki.</label></td>
                                        </tr>
                                    </table>
                                </td>
                            </tr>
                            <tr>
                                <td colspan="2" class="padd-t-1"><input type="reset" name="reset" id="reset" value="Wyczyść" class="btn btn-warning"></td>
                                <td colspan="2" class="padd-t-1"><input type="submit" value="Wyślij" id="but_page1" name="but_page1" class="btn btn-success txt-1"></td>
                            </tr>
                        </table>
                    </form>
    
                </section>
    
            </center>
        </div>
    </div>
    
    2. Wysłałam na op.pl i też nie doszło.
    3. Nie ma żadnych filtrów, poprawiłam na "UTF-8"
    4. Nie wiem jak to sprawdzić
     
  6. casar

    casar Profesjonalista

    Wiadomości:
    469
    Docenione treści:
    122
    Kod:
    $headers[] = 'From: katarzyna@domena.pl';
    
    mail($to, $subject, $message, $headers, "-f dok@domena.pl");
    Taki zapis w skrypcie moim zdaniem nie jest do końca poprawny, bo raz w $headers[] dajesz adres FROM, a po chwili w funkcji mail() inny adres w piątym parametrze.

    Moim zdaniem warto przesłać zgłoszenie do BOKu z datami o godzinami prób, żeby sprawdzili logi pocztowe Twojego serwera.
     
  7. LorK

    LorK Przyjaciel forum Beta-tester

    Wiadomości:
    1 013
    Docenione treści:
    88
  8. casar

    casar Profesjonalista

    Wiadomości:
    469
    Docenione treści:
    122
    Jeżeli korzysta z PHPMailera to nie jest zbędne. Choć jak patrze po swoich notatkach, to ja wykorzystuję dwie biblioteki PHPMailera:
    PHP:
    Najprostsza konfiguracja wymaga podłączenia dwóch plików:

    require_once(
    '/libs/class.phpmailer.php');    //dodanie klasy phpmailer
    require_once('/libs/class.smtp.php');    //dodanie klasy smtp

    oraz skonfigurowanie:

     
    $mail = new PHPMailer();    //utworzenie nowej klasy phpmailer
     
    $mail->CharSet "UTF-8";
     
    $mail->From " ";    //adres e-mail użyty do wysyłania wiadomości <- podać adres e-mail na serwerze w home.pl
     
    $mail->FromName " ";    //imię i nazwisko lub nazwa użyta do wysyłania wiadomości
     
    $mail->AddReplyTo($_POST['mail'], $_POST['name']); //adres e-mail nadawcy oraz jego nazwa w polu "Odpowiedz do"  <- podać dane nadawcy wprowadzone z formularza - $_POST['mail'] - adres, $_POST['name'] - nazwa
     
    $mail->Host "nazwa_serwera.home.pl ";    //adres serwera SMTP wysyłającego e-mail
     
    $mail->Mailer "smtp";    //do wysłania zostanie użyty serwer SMTP
     
    $mail->SMTPAuth true;    //włączenie autoryzacji do serwera SMTP
     
    $mail->Username " ";    //nazwa użytkownika do skrzynki e-mail <- podać adres e-mail na serwerze w home.pl
     
    $mail->Password " ";    //hasło użytkownika do skrzynki e-mail <- podać hasło do skrzynki na serwerze w home.pl
     
    $mail->Port 587//port serwera SMTP zależny od konfiguracji dostawcy usługi poczty
     
    $mail->Subject " ";    //Temat wiadomości, można stosować zmienne i znaczniki HTML
     
    $mail->Body $_POST['msg'];    //Treść wiadomości, można stosować zmienne i znaczniki HTML     
     
    $mail->AddAddress (" "," ");    //adres skrzynki e-mail oraz nazwa adresata, do którego trafi wiadomość <- podać adres e-mail, na jaki ma być wysłana wiadomość i nazwę odbiorcy
    $mail->Send();
     
  9. LorK

    LorK Przyjaciel forum Beta-tester

    Wiadomości:
    1 013
    Docenione treści:
    88
    w podanym przykładzie używa mail(), więc raczej nie korzysta.
     
  10. casar

    casar Profesjonalista

    Wiadomości:
    469
    Docenione treści:
    122
    W drugim i trzecim kodzie faktycznie. Jakoś pominąłem tego require'a w tych dwóch przykładach.
     
  11. malaczarnak

    malaczarnak Początkujący

    Wiadomości:
    5
    Docenione treści:
    1
    Zrobiłam tak jak tutaj podałeś, ale... no cóż dalej nie wychodzą maile, Żadnego ruchu w moich logach.
    PHP:
    <?php
    require_once('PHPMailer/class.phpmailer.php');    //dodanie klasy phpmailer
    require_once('PHPMailer/class.smtp.php');    //dodanie klasy smtp

    $mail = new PHPMailer();    //utworzenie nowej klasy phpmailer
    $mail->CharSet "UTF-8";
    $mail->From "katarzyna@home.pl";    //adres e-mail użyty do wysyłania wiadomości <- podać adres e-mail na serwerze w home.pl
    $mail->FromName "abc";    //imię i nazwisko lub nazwa użyta do wysyłania wiadomości
    //$mail->AddReplyTo($_POST['mail'], $_POST['name']); //adres e-mail nadawcy oraz jego nazwa w polu "Odpowiedz do"  <- podać dane nadawcy wprowadzone z formularza - $_POST['mail'] - adres, $_POST['name'] - nazwa
    $mail->AddReplyTo "katarzyna@home.pl"
    $mail->Host "serwer.home.pl";    //adres serwera SMTP wysyłającego e-mail
    $mail->Mailer "smtp";    //do wysłania zostanie użyty serwer SMTP
    $mail->SMTPAuth true;    //włączenie autoryzacji do serwera SMTP
    $mail->Username "katarzyna@home.pl";    //nazwa użytkownika do skrzynki e-mail <- podać adres e-mail na serwerze w home.pl
    $mail->Password "xxx";    //hasło użytkownika do skrzynki e-mail <- podać hasło do skrzynki na serwerze w home.pl
    $mail->Port 587//port serwera SMTP zależny od konfiguracji dostawcy usługi poczty
    $mail->Subject "Rejestracja Klienta";    //Temat wiadomości, można stosować zmienne i znaczniki HTML

    $htmlbody "
    <HTML>
    <HEAD>
    </HEAD>
    <BODY>
    <font size='3'><font face='Verdana'>
        <p>Nazwisko:<span style='color:blue;'>"
    .$_SESSION['collected']['surname']."</span></p>
        <p>Imię:<span style='color:blue;'>"
    .$_SESSION['collected']['name']."</span></p>
        <p>Telefon domowy:<span style='color:blue;'>"
    .$_SESSION['phoneHome']."</span></p>
        <p>Telefon firmowy:<span style='color:blue;'>"
    .$_SESSION['collected']['phoneWork']."</span></p>
        <p>E-mail:<span style='color:blue;'>"
    .$_SESSION['collected']['email']."</span></p>
        <p>Zgoda:<span style='color:blue;'>"
    .$_SESSION['collected']['check1']."</span></p>
    </font>
    </BODY>

    </HTML>"
    ;

    //$mail->Body = $_POST['msg'];    //Treść wiadomości, można stosować zmienne i znaczniki HTML     
    $mail->Body$htmlbody;
    $mail->AddAddress ("kwdo@op.pl");    //adres skrzynki e-mail oraz nazwa adresata, do którego trafi wiadomość <- podać adres e-mail, na jaki ma być wysłana wiadomość i nazwę odbiorcy
    //$mail->AddAddress($_POST['email']);
    $mail->Send();

    ?>
     
  12. malaczarnak

    malaczarnak Początkujący

    Wiadomości:
    5
    Docenione treści:
    1
    Problem rozwiązany.
     
    Mariusz lubi to.
  13. casar

    casar Profesjonalista

    Wiadomości:
    469
    Docenione treści:
    122
    Gdzie był błąd?
     
  14. Mariusz

    Mariusz pomoc.home.pl home.pl Administrator forum

    Wiadomości:
    3 065
    Docenione treści:
    301
    Ustawiam temat jako rozwiązany i proszę o podanie informacji o rozwiązaniu - może się przydać dla potomnych ;)
     

Poleć forum znajomym