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: <?phprequire_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: <?phprequire_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");?>
a próbowałaś poszukać na forum.home.pl? https://forum.home.pl/threads/formularz-wysylki-maila-ze-strony-www.4037/#post-24581
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?
No właśnie wiem, że coś źle robię, ale nie widzę błędu. 1. Dostaje info Code: 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: <?phprequire_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ć
Code: $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.
https://www.php.net/manual/en/function.mail.php#example-4195 Jeśli wszystkie sposoby nie działają... przeczytaj instrukcję a to: chyba jest zbędne.
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 phpmailerrequire_once('/libs/class.smtp.php'); //dodanie klasy smtporaz 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();
Zrobiłam tak jak tutaj podałeś, ale... no cóż dalej nie wychodzą maile, Żadnego ruchu w moich logach. PHP: <?phprequire_once('PHPMailer/class.phpmailer.php'); //dodanie klasy phpmailerrequire_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();?>
Ustawiam temat jako rozwiązany i proszę o podanie informacji o rozwiązaniu - może się przydać dla potomnych