Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Problem z PHPmailer
mariusz_edw
post 11.09.2014, 08:48:59
Post #1





Grupa: Zarejestrowani
Postów: 19
Pomógł: 0
Dołączył: 24.01.2008

Ostrzeżenie: (0%)
-----


Mam następujący problem z PHPmailer-em.

Pobrałem:
https://github.com/Synchro/PHPMailer/archive/master.zip

Wypakowałem do folderu strony do podfolderu phpmailer.

Bezpośrednio w folderze strony wykorzystałem przykładowy kod (uzupełniając własne dane) i zapisując do dodaj.php

Kod
<?php
require(phpmailer/class.phpmailer.php);
$mail = new PHPMailer();
$mail->PluginDir = "phpmailer/";
$mail->From = "login@serwer.pl";
$mail->FromName = "moje Imię i nazwisko albo nick";
$mail->Host = "smtp.wp.pl";
$mail->Mailer = "smtp";
$mail->Username = "login";
$mail->Password = "Hasło do poczty";
$mail->SMTPAuth = true;
$mail->Port = 25;
$mail->SetLanguage("pl", "phpmailer/language/");
$mail->Subject = "tytuł maila";
$mail->Body = 'Treść maila w której można używać zmiennych jak i kodu HTML';
$mail->AddAddress("dokogowysylamy@serwer.pl","imie i nazwisko bądź nick osoby do której wysyłamy");
if($mail->Send())
    {
    echo 'E-mail został wysłany';
    }
else
    {
    echo 'E-mail nie mógł zostać wysłany, przyczyna :'. $mail->ErrorInfo;
    }
$mail->ClearAddresses();
$mail->ClearAttachments();
?>


Po wywołaniu w przeglądarce efekt białej strony.

I generalnie doszedłem do tego, że próba wykonania "require(phpmailer/class.phpmailer.php);" kończy się białą stroną.

Gdy tę linię zakomentuję wykonują się inne dodatkowe instrukcje, "require" blokuje wszystko.
Go to the top of the page
+Quote Post
Sephirus
post 11.09.2014, 08:57:14
Post #2





Grupa: Zarejestrowani
Postów: 1 527
Pomógł: 438
Dołączył: 28.06.2011
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


prawdopodobnie podajesz złą ścieżkę. Najlepiej daj na początku error_reporting(E_ALL) i zobacz co Ci sypnie w błędzie.


--------------------
If you're good at something, never do it for free.
Potrzebujesz skryptu JS lub PHP - szukasz kogoś kto przetestuje twoją aplikację pod względem bezpieczeństwa? Szybko i solidnie? Napisz ;)
Mój blog - Jak zwiększyć wydajność front-endu - O buforowaniu wyjścia w PHP słów kilka...
Go to the top of the page
+Quote Post
mariusz_edw
post 11.09.2014, 20:47:42
Post #3





Grupa: Zarejestrowani
Postów: 19
Pomógł: 0
Dołączył: 24.01.2008

Ostrzeżenie: (0%)
-----


W pliku zamowstrone.php dodałem jako pierwszą linię:

error_reporting(E_ALL);

Ale zero efektu. Biała strona. Kurcze...
Go to the top of the page
+Quote Post
irekk
post 11.09.2014, 20:52:14
Post #4





Grupa: Zarejestrowani
Postów: 64
Pomógł: 10
Dołączył: 2.08.2012
Skąd: DW

Ostrzeżenie: (0%)
-----


Dwie rzeczy:
  1. ini_set('display_errors', true);


  1. require(phpmailer/class.phpmailer.php);

nie zgubiłeś apo?
Go to the top of the page
+Quote Post
mariusz_edw
post 12.09.2014, 04:31:36
Post #5





Grupa: Zarejestrowani
Postów: 19
Pomógł: 0
Dołączył: 24.01.2008

Ostrzeżenie: (0%)
-----


Teraz działa raport o błędach. Dzięki.

Zaczyna się coś wyjaśniać:

Fatal error: Class 'SMTP' not found in /var/www/html/log/sites/phpmailer/class.phpmailer.php on line 1194

Tylko, że class.phpmailer.php jest oryginalnym plikiem z paczki podlinkowanej wyżej. Więc nie rozumiem skąd bierze się problem.

Mój plik php (konto na onecie)

  1.  
  2. <?php
  3.  
  4. ini_set('display_errors', true);
  5.  
  6. require('phpmailer/class.phpmailer.php');
  7. $mail = new PHPMailer();
  8. $mail->PluginDir = "/phpmailer/";
  9. $mail->From = "mojanazwa@vp.pl";
  10. $mail->FromName = "mojanazwa";
  11. #$mail->Host = "smtps://mojanazwa@vp.pl@smtp.vp.pl:465/";
  12. $mail->Host = "smtp.vp.pl";
  13. $mail->Mailer = "smtp";
  14. $mail->Username = "mojanazwa@vp.pl";
  15. $mail->Password = "mojehaslo";
  16. $mail->SMTPAuth = true;
  17. $mail->Port = 465;
  18. $mail->SetLanguage("pl", "phpmailer/language/");
  19. $mail->Subject = "tytuł maila";
  20. $mail->Body = 'Treść maila w której można używać zmiennych jak i kodu HTML';
  21. $mail->AddAddress("jakisadres@gmail.com","Nazwa Odbiorcy");
  22. if($mail->Send())
  23. {
  24. echo 'E-mail został wysłany';
  25. }
  26. else
  27. {
  28. echo 'E-mail nie mógł zostać wysłany, przyczyna :'. $mail->ErrorInfo;
  29. }
  30. $mail->ClearAddresses();
  31. $mail->ClearAttachments();
  32. ?>
Go to the top of the page
+Quote Post
irekk
post 12.09.2014, 07:08:29
Post #6





Grupa: Zarejestrowani
Postów: 64
Pomógł: 10
Dołączył: 2.08.2012
Skąd: DW

Ostrzeżenie: (0%)
-----


zamiast ładować class.phpmailer.php załaduj PHPMailerAutoload.php

  1. require('phpmailer/PHPMailerAutoload.php');


Ten post edytował irekk 12.09.2014, 07:09:09
Go to the top of the page
+Quote Post
mariusz_edw
post 12.09.2014, 17:40:31
Post #7





Grupa: Zarejestrowani
Postów: 19
Pomógł: 0
Dołączył: 24.01.2008

Ostrzeżenie: (0%)
-----


No dobra, mamy coś nowego:

E-mail nie mógł zostać wysłany, przyczyna :SMTP Connect() zakończone niepowodzeniem.

Bajer! Działa :-)

Poprawny konfig dla onet.pl:

  1. <?php
  2.  
  3. ini_set('display_errors', true);
  4.  
  5. require('phpmailer/PHPMailerAutoload.php');
  6. $mail = new PHPMailer();
  7. $mail->PluginDir = "phpmailer/";
  8. $mail->From = "mojanazwa@vp.pl";
  9. $mail->FromName = "mojanazwa";
  10. $mail->SMTPAuth = "login";
  11. $mail->SMTPSecure = "ssl";
  12. $mail->Host = "smtp.poczta.onet.pl";
  13. $mail->Mailer = "smtp";
  14. $mail->Username = "mojanazwa@vp.pl";
  15. $mail->Password = "mojehaslo";
  16. $mail->SMTPAuth = true;
  17. $mail->Port = 465;
  18. $mail->SetLanguage("pl", "phpmailer/language/");
  19. $mail->Subject = "tytuł maila";
  20. $mail->Body = 'Treść maila w której można używać zmiennych jak i kodu HTML';
  21. $mail->AddAddress("jakismail@gmail.com","Imie Nazwisko");
  22. if($mail->Send())
  23. {
  24. echo 'E-mail został wysłany';
  25. }
  26. else
  27. {
  28. echo 'E-mail nie mógł zostać wysłany, przyczyna :'. $mail->ErrorInfo;
  29. }
  30. $mail->ClearAddresses();
  31. $mail->ClearAttachments();
  32. ?>
  33.  


Mam jeszcze drobny problem

Takie coś działa:

  1. $mail->Subject = $_GET['f1'];


a jak zrobić, by zadziałało coś w deseń:

  1. $mail->Subject = "Zamówiono stronę: $_GET['f1']";


Tak aby zamiast zmiennej pojawiła się tam jej wartość ?
Go to the top of the page
+Quote Post
irekk
post 12.09.2014, 21:00:55
Post #8





Grupa: Zarejestrowani
Postów: 64
Pomógł: 10
Dołączył: 2.08.2012
Skąd: DW

Ostrzeżenie: (0%)
-----


  1. $mail->Subject = "Zamówiono stronę: {$_GET['f1']}";

Array w klamry, chociaż z tym getem prosisz się o kuku wink.gif

Ten post edytował irekk 12.09.2014, 21:01:41
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 20.04.2024 - 15:37