Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Wysyłka maila za pomocą PHPMailer
Forum PHP.pl > Forum > PHP
Patricco90
Witam, pobrałem PHPMailer z github PHPMailer

kolejno przystosowałem kod pod wysyłkę z gmaila:
  1. require_once('PHPMailer3/PHPMailerAutoload.php');
  2.  
  3. $mail = new PHPMailer;
  4. $mail->CharSet = "UTF-8";
  5.  
  6. $mail->IsSMTP();
  7. $mail->Host = 'smtp.gmail.com';
  8. $mail->Port = 465;
  9. $mail->SMTPAuth = true;
  10.  
  11. $mail->Username = "mail";
  12. $mail->Password = "haslo";
  13. $mail->SMTPSecure = 'ssl';
  14.  
  15. $mail->addAddress('emailto');
  16.  
  17. $mail->Subject = 'Tytuł wiadomości';
  18. $mail->Body = 'Treść wiadomości w HTML';
  19. $mail->AltBody = 'Treść wiadomości jako tekst';
  20.  
  21. if(!$mail->Send()) {
  22. echo 'Mailer Error: ' . $mail->ErrorInfo;
  23. }
  24.  
  25. echo 'Wiadomość wysłana';


W odpowiedzi otrzymuje:

  1. Mailer Error: SMTP connect() failed. <a href="https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting" target="_blank">https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting</a>



Gdzie dane konta gmail są prawidłowe.
Co mogę robić źle?
Pyton_000
wywal $mail->IsSMTP();

i ew. zmień ssl na tsl
Patricco90
A jeżeli na serwerze zablokowali funkcję mail()
to PHPMailer zadziała?

bo teraz otrzymuje odp:
  1. Mailer Error: Nie można wywołać funkcji mail(). Sprawdź konfigurację serwera.
nospor
No skoro teraz zmieniles ustawienia phpmailer, by korzystal z mail() to tak, wowczas mail() jest wymagane... W pierwszym poscie slales przez gmail wiec mail() nie bylo wymagane

@Pyton a niby czemu ma wywalic $mail->IsSMTP(); ? Cos chyba nie tak...

@Patricco
https://github.com/PHPMailer/PHPMailer/blob...ples/gmail.phps
masz tam podana prawidlowa konfiguracje dla gmail
Pyton_000
@nospor fakt, pomyliło mi się z isSSL() smile.gif
Patricco90
1. gmail mi już zadziałał - problem polegał na blokowaniu konta przez google wink.gif

2. chciałbym teraz użyć jednak poczty z hostingu i problem a podmieniam tylko dane

mam do wyboru:
  1. $mail->Port = 587;
  2. $mail->SMTPSecure = 'STARTTLS';


or

  1. $mail->Port = 465;
  2. $mail->SMTPSecure = 'SSL / TLS';



Ale na żadnej opcji nie przechodzi a jeszcze zmulam hosting

  1. $mail->SMTPDebug = 2;

i wynik następujący:
  1. 2018-03-19 13:41:53 SERVER -> CLIENT: 220 host1.xxx.pl ESMTP Exim 4.84_2 Mon, 19 Mar 2018 14:41:53 +0100
  2. 2018-03-19 13:41:53 CLIENT -> SERVER: EHLO link.pl
  3. 2018-03-19 13:41:53 SERVER -> CLIENT: 250-host1.xxx.pl Hello host1.xxx.pl [xx.xxx.xx.xx]250-SIZE 52428800250-8BITMIME250-PIPELINING250-AUTH PLAIN LOGIN250-STARTTLS250 HELP
  4. 2018-03-19 13:41:53 CLIENT -> SERVER: STARTTLS
  5. 2018-03-19 13:41:54 SERVER -> CLIENT: 220 TLS go ahead
  6. Błąd SMTP: Nie można połączyć się z wybranym hostem.
  7. 2018-03-19 13:41:54 CLIENT -> SERVER: QUIT
  8. 2018-03-19 13:41:54
  9. 2018-03-19 13:41:54
  10. SMTP Connect() zakończone niepowodzeniem. <a href="https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting" target="_blank">https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting</a>
  11. Mailer Error: SMTP Connect() zakończone niepowodzeniem. <a href="https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting" target="_blank">https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting</a>
Pyton_000
Do zmiennej masz wstawić SSL lub TSL a nie tak jak masz wink.gif
Patricco90
wiem, próbowałem z ssl, i tls

ponawiam temat, ciągle mam zwrotkę jak w przedostatnim poscie.
Ma ktoś na to radę?
Pyton_000
Może tam gdzie próbujesz się połączyć nie jest aktywny SMTP, albo łączysz się nie na ten host co trzeba...

Co to za hosting?
Patricco90
Wina certyfikatów na serwerze? PHPMailer 6.0

  1. 2018-03-20 20:13:45 Connection failed. Error #2: stream_socket_enable_crypto(): SSL operation failed with code 1. OpenSSL Error messages:error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed [/home/web/name.pl/public_html/PHPMailer6/src/SMTP.php line 389]
  2. Błąd SMTP: Nie można połączyć się z wybranym hostem.
  3. 2018-03-20 20:13:45 CLIENT -> SERVER: QUIT
  4. 2018-03-20 20:13:45 Connection: closed
  5. Błąd SMTP: Nie można połączyć się z wybranym hostem.
leonpro778
Linijkę:

  1. $mail->SMTPSecure = 'STARTTLS';


Zamień na:
  1. // $mail->SMTPSecure = 'STARTTLS';


Daj znać czy poszło (na serio, to nie żart smile.gif )
Tomplus
Jeżeli chcesz użyć SSL, to niektóre serwery potrzebują dodatkowe opcje.

  1.  
  2. $this->mailer->SMTPOptions = ['ssl' => [
  3. 'verify_peer' => false,
  4. 'verify_peer_name' => false,
  5. 'allow_self_signed' => true
  6. ]];
  7. }
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-2025 Invision Power Services, Inc.