• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

konfiguracja PHPMailer

Aruba Cloud VPS - 50% taniej przez 3 miesiące!
0 głosów
2,452 wizyt
pytanie zadane 19 listopada 2017 w PHP przez mi-20 Stary wyjadacz (13,250 p.)
Witam, w jaki sposób skonfigurować PHPMailer  tak aby można było wysyłać maile za pomocą gmaila?
komentarz 19 listopada 2017 przez mi-20 Stary wyjadacz (13,250 p.)

Mam taki kod:

<?php
/**
 * This example shows settings to use when sending via Google's Gmail servers.
 * This uses traditional id & password authentication - look at the gmail_xoauth.phps
 * example to see how to use XOAUTH2.
 * The IMAP section shows how to save this message to the 'Sent Mail' folder using IMAP commands.
 */
//Import PHPMailer classes into the global namespace
use PHPMailer\PHPMailer\PHPMailer;
require 'vendor/autoload.php';
//Create a new PHPMailer instance
$mail = new PHPMailer;
//Tell PHPMailer to use SMTP
$mail->isSMTP();
//Enable SMTP debugging
// 0 = off (for production use)
// 1 = client messages
// 2 = client and server messages
$mail->SMTPDebug = 2;
//Set the hostname of the mail server
$mail->Host = 'smtp.gmail.com';
// use
// $mail->Host = gethostbyname('smtp.gmail.com');
// if your network does not support SMTP over IPv6
//Set the SMTP port number - 587 for authenticated TLS, a.k.a. RFC4409 SMTP submission
$mail->Port = 587;
//Set the encryption system to use - ssl (deprecated) or tls
$mail->SMTPSecure = 'tls';
//Whether to use SMTP authentication
$mail->SMTPAuth = true;
//Username to use for SMTP authentication - use full email address for gmail
$mail->Username = "mój mail";
//Password to use for SMTP authentication
$mail->Password = "moje hasło do gmail a";
//Set who the message is to be sent from
$mail->setFrom('adres z którego zostanie wysłany', 'First Last');
//Set an alternative reply-to address
$mail->addReplyTo('', 'First Last');
//Set who the message is to be sent to
$mail->addAddress('mail na który ma zostać wysłany', 'John Doe');
//Set the subject line
$mail->Subject = 'PHPMailer GMail SMTP test';
//Read an HTML message body from an external file, convert referenced images to embedded,
//convert HTML into a basic plain-text alternative body
$mail->msgHTML(file_get_contents('contents.html'), __DIR__);
//Replace the plain text body with one created manually
$mail->AltBody = 'This is a plain-text message body';
//Attach an image file
$mail->addAttachment('images/phpmailer_mini.png');
//send the message, check for errors
if (!$mail->send()) {
    echo "Mailer Error: " . $mail->ErrorInfo;
} else {
    echo "Message sent!";
    //Section 2: IMAP
    //Uncomment these to save your message in the 'Sent Mail' folder.
    #if (save_mail($mail)) {
    #    echo "Message saved!";
    #}
}
//Section 2: IMAP
//IMAP commands requires the PHP IMAP Extension, found at: https://php.net/manual/en/imap.setup.php
//Function to call which uses the PHP imap_*() functions to save messages: https://php.net/manual/en/book.imap.php
//You can use imap_getmailboxes($imapStream, '/imap/ssl') to get a list of available folders or labels, this can
//be useful if you are trying to get this working on a non-Gmail IMAP server.
function save_mail($mail)
{
    //You can change 'Sent Mail' to any other folder or tag
    $path = "{imap.gmail.com:993/imap/ssl}[Gmail]/Sent Mail";
    //Tell your server to open an IMAP connection using the same username and password as you used for SMTP
    $imapStream = imap_open($path, $mail->Username, $mail->Password);
    $result = imap_append($imapStream, $path, $mail->getSentMIMEMessage());
    imap_close($imapStream);
    return $result;
}

jednak dostaję komunikat:

Mailer Error: SMTP connect() failed. https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting

1
komentarz 19 listopada 2017 przez CzikaCarry Szeryf (75,340 p.)
edycja 19 listopada 2017 przez CzikaCarry
Daj SMTPDebug = 3; zamiast 2 i wklej to co wypluje na ekran.
komentarz 19 listopada 2017 przez mi-20 Stary wyjadacz (13,250 p.)
2017-11-19 19:38:23 Connection: opening to smtp.gmail.com:587, timeout=300, options=array()
2017-11-19 19:38:23 Connection: opened
2017-11-19 19:38:23 SERVER -> CLIENT: 220 smtp.gmail.com ESMTP h131sm1618340lfe.81 - gsmtp
2017-11-19 19:38:23 CLIENT -> SERVER: EHLO localhost
2017-11-19 19:38:23 SERVER -> CLIENT: 250-smtp.gmail.com at your service, [81.219.133.231]250-SIZE 35882577250-8BITMIME250-STARTTLS250-ENHANCEDSTATUSCODES250-PIPELINING250-CHUNKING250 SMTPUTF8
2017-11-19 19:38:23 CLIENT -> SERVER: STARTTLS
2017-11-19 19:38:23 SERVER -> CLIENT: 220 2.0.0 Ready to start TLS
2017-11-19 19:38:23 CLIENT -> SERVER: EHLO localhost
2017-11-19 19:38:23 SERVER -> CLIENT: 250-smtp.gmail.com at your service, [81.219.133.231]250-SIZE 35882577250-8BITMIME250-AUTH LOGIN PLAIN XOAUTH2 PLAIN-CLIENTTOKEN OAUTHBEARER XOAUTH250-ENHANCEDSTATUSCODES250-PIPELINING250-CHUNKING250 SMTPUTF8
2017-11-19 19:38:23 CLIENT -> SERVER: AUTH LOGIN
2017-11-19 19:38:23 SERVER -> CLIENT: 334 VXNlcm5hbWU6
2017-11-19 19:38:23 CLIENT -> SERVER: MTZoLm1pY2hhbC5sb3Nha0BlenNlLnBs
2017-11-19 19:38:23 SERVER -> CLIENT: 334 UGFzc3dvcmQ6
2017-11-19 19:38:23 CLIENT -> SERVER: SGFybW9uUmFiYjE0
2017-11-19 19:38:24 SERVER -> CLIENT: 534-5.7.14 <https://accounts.google.com/signin/continue?sarp=1&scc=1&plt=AKgnsbsH534-5.7.14 JKpp2kKvKzaBqDXB9oBuND8Gn34WfodMSo3LUj5WC2d2Oo5cmZRqJmzKsS1oWLVCbZKz36534-5.7.14 _6LCMkQY0ecdOuKRVLXFuGfWZj77ua2ko344HZx5mVWRKnb85Gwk_EdZYCIdItYdpLq2Kr534-5.7.14 gm6OSEewFaxKVZu36FlRRLPCBcP7t6H6GKeoI33bx-6fwNorLBFeZUk4SufLdjqV8wNymN534-5.7.14 Dd3RoOopC5WAl8MvVvSeFL8OfK3MM> Please log in via your web browser and534-5.7.14 then try again.534-5.7.14 Learn more at534 5.7.14 https://support.google.com/mail/answer/78754 h131sm1618340lfe.81 - gsmtp
2017-11-19 19:38:24 SMTP ERROR: Password command failed: 534-5.7.14 <https://accounts.google.com/signin/continue?sarp=1&scc=1&plt=AKgnsbsH534-5.7.14 JKpp2kKvKzaBqDXB9oBuND8Gn34WfodMSo3LUj5WC2d2Oo5cmZRqJmzKsS1oWLVCbZKz36534-5.7.14 _6LCMkQY0ecdOuKRVLXFuGfWZj77ua2ko344HZx5mVWRKnb85Gwk_EdZYCIdItYdpLq2Kr534-5.7.14 gm6OSEewFaxKVZu36FlRRLPCBcP7t6H6GKeoI33bx-6fwNorLBFeZUk4SufLdjqV8wNymN534-5.7.14 Dd3RoOopC5WAl8MvVvSeFL8OfK3MM> Please log in via your web browser and534-5.7.14 then try again.534-5.7.14 Learn more at534 5.7.14 https://support.google.com/mail/answer/78754 h131sm1618340lfe.81 - gsmtp
SMTP Error: Could not authenticate.
2017-11-19 19:38:24 CLIENT -> SERVER: QUIT
2017-11-19 19:38:24 SERVER -> CLIENT: 221 2.0.0 closing connection h131sm1618340lfe.81 - gsmtp
2017-11-19 19:38:24 Connection: closed
SMTP connect() failed. https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting
Mailer Error: SMTP connect() failed. https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting

1 odpowiedź

+1 głos
odpowiedź 19 listopada 2017 przez CzikaCarry Szeryf (75,340 p.)
wybrane 19 listopada 2017 przez mi-20
 
Najlepsza

1) zaloguj się przez przeglądarkę do tego konta google, z którego chcesz wysłać maila, wejdz w ten link i zezwól na mniej bezpieczne aplikacje.

2) sprawdź, czy dane do logowania są na pewno dobre.

komentarz 19 listopada 2017 przez mi-20 Stary wyjadacz (13,250 p.)
Dzięki, działa
komentarz 19 listopada 2017 przez mi-20 Stary wyjadacz (13,250 p.)

A jeszcze, czy dało by się zamienić tą linijkę

$mail->msgHTML(file_get_contents('contents.html'), __DIR__);

tak aby treść była pobierana ze zmiennej a nie z zewnętrznego pliku?

komentarz 19 listopada 2017 przez CzikaCarry Szeryf (75,340 p.)
Oczywiście, że można: https://stackoverflow.com/a/10389142
komentarz 20 listopada 2017 przez mi-20 Stary wyjadacz (13,250 p.)
Jeszcze małe pytanko, jak zrobić żeby w wysłanym mailu wyświetlały się polskie znaki?
komentarz 20 listopada 2017 przez CzikaCarry Szeryf (75,340 p.)
Ustaw charset na utf-8
komentarz 20 listopada 2017 przez mi-20 Stary wyjadacz (13,250 p.)
W którym miejscu? Bo właśnie tego nie mogę znaleźć.
1
komentarz 20 listopada 2017 przez CzikaCarry Szeryf (75,340 p.)
$mail->CharSet = 'UTF-8';

 

Podobne pytania

+1 głos
0 odpowiedzi 105 wizyt
pytanie zadane 16 listopada 2021 w PHP przez FabQ Początkujący (450 p.)
0 głosów
1 odpowiedź 135 wizyt
pytanie zadane 9 maja 2020 w PHP przez Hardwell Dyskutant (8,980 p.)
0 głosów
1 odpowiedź 512 wizyt
pytanie zadane 15 grudnia 2019 w PHP przez rickert Nowicjusz (120 p.)

93,182 zapytań

142,196 odpowiedzi

322,002 komentarzy

62,513 pasjonatów

Advent of Code 2024

Top 15 użytkowników

  1. 2127p. - dia-Chann
  2. 2092p. - Łukasz Piwowar
  3. 2079p. - Łukasz Eckert
  4. 2037p. - Tomasz Bielak
  5. 2006p. - rucin93
  6. 2005p. - Łukasz Siedlecki
  7. 1964p. - CC PL
  8. 1835p. - Adrian Wieprzkowicz
  9. 1785p. - Michal Drewniak
  10. 1744p. - rafalszastok
  11. 1684p. - Mikbac
  12. 1624p. - Anonim 3619784
  13. 1520p. - Marcin Putra
  14. 1480p. - ssynowiec
  15. 1365p. - Dawid128
Szczegóły i pełne wyniki

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Wprowadzenie do ITsec, tom 1 Wprowadzenie do ITsec, tom 2

Można już zamawiać dwa tomy książek o ITsec pt. "Wprowadzenie do bezpieczeństwa IT" - mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy aż 15% zniżki! Dziękujemy ekipie Sekuraka za fajny rabat dla naszej Społeczności!

...