Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: phpMailer - nie działa wysyłanie maila
Forum PHP.pl > Forum > Gotowe rozwiązania
Cadi2108
Witam!

Oto mój formularz

  1. <form method="post" name="kontakt" action="send_mail.php">
  2. <fieldset class="formularz_kontaktowy">
  3. <legend>Formularz kontaktowy</legend>
  4. <div><label id="lblStatus"></label></div>
  5. <div><input type="text" name="txtName" title="Imię i nazwisko" id="txtName" class="text"></div>
  6. <div><input type="text" name="txtEmail" title="Email" id="txtEmail" class="text"></div>
  7. <div><input type="text" name="txtTitle" title="Tytuł" id="txtTitle" class="text"></div>
  8. <div><textarea cols="30" rows="10" name="txtMessage" id="txtMessage" class="text" title="Treść wiadomości"></textarea></div>
  9. <input type="submit" value="Wyślij">
  10. </form>


A tutaj plik send_mail.php

  1. <?php
  2. require_once('phpmailer/class.phpmailer.php');
  3. $mail = new PHPMailer(true);
  4.  
  5. $mail->PluginDir = "phpmailer/";
  6. $mail->IsSMTP();
  7. $mail->SMTPAuth = true; // enable SMTP authentication
  8. $mail->SMTPSecure = "ssl"; // sets the prefix to the servier
  9. $mail->Host = "smtp.gmail.com";
  10. $mail->Port = 465;
  11. $mail->Username = "xxx@gmail.com";
  12. $mail->Password = "xxxxx";
  13.  
  14. $mail->SetFrom('xxx@gmail.com', 'Nasze imie i nazwisko');
  15.  
  16. $mail->AddAddress("email@adresata.pl"); // ADRESAT
  17.  
  18. $mail->Subject = 'To jest wiadomość testowa. Sprawdzam czcionki!';
  19.  
  20. // w zmienną $text_body wpisujemy treść maila
  21. $text_body = "Cześć, chyba phpMailer działa \n\n";
  22. $text_body .= "Na zawsze Twój, \n";
  23. $text_body .= "PHPMailer";
  24.  
  25. $mail->Body = $text_body;
  26.  
  27. if(!$mail->Send())
  28. echo "There has been a mail error <br>";
  29. echo $mail->ErrorInfo."<br>";
  30.  
  31. // Clear all addresses and attachments
  32. $mail->ClearAddresses();
  33. $mail->ClearAttachments();
  34. echo "mail sent <br>";
  35. ?>


Jak widać, jeszcze nic z formularza nie jest pobierane, wszystko jest wpisane na sztywno. Login i hasło są na pewno poprawne. Niestety, po naciśnięciu przycisku wysyłającego formularz pojawia się na pasku url localhost/send_mail.php i pusta strona, ani komunikat o błędzie ani nic. Mail oczywiście nie dochodzi. Ma ktoś może pomysł, jaka może być przyczyna?

Serdecznie pozdrawiam,
Dagna
nospor
Skoro masz pustą stronę, znaczy że masz PARSE ERROR/FATAL ERROR lub coś podobnego. Włącz w php.ini wyświetlanie wszystkich błędów
Cadi2108
Dziękuję za odpowiedź!

Mam następujący komunikat o błędzie:

Fatal error: Uncaught exception 'phpmailerException' with message 'SMTP Error: Could not connect to SMTP host.' in /export/w3home/w3biocon/public_html/phpmailer/class.phpmailer.php:705 Stack trace: #0 /export/w3home/w3biocon/public_html/phpmailer/class.phpmailer.php(613): PHPMailer->SmtpConnect() #1 /export/w3home/w3biocon/public_html/phpmailer/class.phpmailer.php(516): PHPMailer->SmtpSend('Date: Fri, 15 J...', 'Cze?questionmark.gif?, chyba ...') #2 /export/w3home/w3biocon/public_html/send_mail.php(29): PHPMailer->Send() #3 {main} thrown in /export/w3home/w3biocon/public_html/phpmailer/class.phpmailer.php on line 705

Czemu nie chce się połączyć z smtp gmaila? sad.gif Ten kod wzięłam stąd http://www.paweldanielewski.pl/phpmailer-i...ez-smtp-gmaila/ i podobno tu działa.

Tu jest link do php.info
http://bioconference.wnb.uz.zgora.pl/phpinfo.php
czachor
Której wersji phpmailera używasz? W paczce jest działający przykład z gmailem.
Cadi2108
Dziękuję, już działa smile.gif

http://stackoverflow.com/questions/1104723...-with-phpmailer
r3b
Witam,

próbował ktoś wysyłać formularz z poczty home.pl?

Większość osób wysyła je przez przez gmaila - ja też robiłem tak na innych stronach ale klient ma serwer w Niemczech. Wydaje mi się, że to jest powód bo identyczny kod działa mi na kilku innych stronach na serwerze w Polsce. Sądzę, że gmail przy próbie logowania z innego kraju prosi o dodatkowa autentyfikację (podanie nr. tel lub innego maila) i dlatego pojawił się problem.

Dostaje taki komunikat:
Błąd SMTP: Nie moĹźna przeprowadzić autentykacji. Błąd wysyłania: Błąd SMTP: Nie moĹźna przeprowadzić autentykacji.

Podaję kod - ale jest przetestowany i działa na innych serwerach:

  1. <?php
  2. // jesli formularz został zgłoszony - przetwarzamy go
  3. if ($_POST['wyslij']) {
  4.  
  5. if ( !$_POST['tresc'] OR !$_POST['podpis'] OR !$_POST['email'] ) { echo "Błąd. Puste pola!"; break; }// coś poszło nie tak
  6.  
  7. $tresc = $_POST['tresc'];
  8. $podpis = $_POST['podpis'];
  9. $email = $_POST['email'];
  10.  
  11. $adresat = "adrest@domena.pl";
  12.  
  13.  
  14. $dozwolone_adresy = "adrest@domena.pl";
  15. if (strpos($dozwolone_adresy,$adresat)===false) { echo "Niedozwolony adresat! $adresat"; break; }
  16.  
  17.  
  18. // utnij zbyt długą treść i podpis
  19. if ( strlen($tresc) > 2000 ) $tresc = substr($tresc, 0, 2000);
  20. if ( strlen($podpis) > 40 ) $podpis = substr($podpis, 0, 40);
  21. if ( strlen($email) > 60 ) $email = substr($email, 0, 60);
  22.  
  23. if(!preg_match('|^[_a-z0-9.-]*[a-z0-9]@[_a-z0-9.-]*[a-z0-9].[a-z]{2,3}$|e', $email)) { echo "Niepoprawny adres email!"; break; }
  24.  
  25.  
  26.  
  27.  
  28. require_once('phpmailerx/class.phpmailer.php');
  29.  
  30. $mail = new PHPMailer();
  31. $mail->IsSMTP(); // send via SMTP
  32. $mail->SMTPAuth = true; // turn on SMTP authentication
  33. $mail->Host = "smtp.gmail.com";
  34. $mail->Port = 465;
  35. $mail->Mailer= "smtp";
  36. $mail->Username = "mail@gmail.com"; // SMTP username
  37. $mail->Password = "haslo"; // SMTP password
  38. $mail->AddReplyTo ($email, $podpis);
  39. $mail->From = $email;
  40. $mail->FromName = $podpis;
  41. $mail->Subject = "Ze strony od: $podpis";
  42. $mail->Body = $tresc;
  43. $mail->WordWrap = 50;
  44. $mail->AddAddress ($adresat);
  45. // $mail->IsHTML (true);
  46. $mail->SetLanguage("pl", "phpmailerx/language/");
  47. $mail->CharSet = 'utf-8';
  48.  
  49. if(!$mail->Send())
  50. { echo "Błąd wysyłania: " . $mail->ErrorInfo; }
  51. else
  52. { echo "Wiadomość została wysłana."; }
  53.  
  54. }
  55.  
  56.  
  57. else
  58. {
  59. ?>
  60.  
  61.  
  62. <form action="kontakt.php" method="post" name="formularz_kontaktowy">
  63. <textarea style="width:260px; height: 160px; " name="tresc" ></textarea><br /><br />
  64.  
  65.  
  66. <br />
  67.  
  68. <label for="podpis">Imię i Nazwisko: </label>
  69. <input id="podpis" type="text" name="podpis" /><br /><br />
  70.  
  71. <label for="email" >Email: </label>
  72. <input id="email" type="text" name="email" /><br /><br />
  73.  
  74. <input class="wysylacz" type="submit" name="wyslij" value="Wyślij" />
  75. </form>
  76.  
  77.  
  78. <?php } ?>


To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2024 Invision Power Services, Inc.