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

konfiguracja PHPMailer

Object Storage Arubacloud
0 głosów
2,237 wizyt
pytanie zadane 19 listopada 2017 w PHP przez mi-20 Stary wyjadacz (13,190 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,190 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,190 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,190 p.)
Dzięki, działa
komentarz 19 listopada 2017 przez mi-20 Stary wyjadacz (13,190 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,190 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,190 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 81 wizyt
pytanie zadane 16 listopada 2021 w PHP przez FabQ Początkujący (450 p.)
0 głosów
1 odpowiedź 108 wizyt
pytanie zadane 9 maja 2020 w PHP przez Hardwell Dyskutant (8,980 p.)
0 głosów
1 odpowiedź 440 wizyt
pytanie zadane 15 grudnia 2019 w PHP przez rickert Nowicjusz (120 p.)

92,555 zapytań

141,403 odpowiedzi

319,560 komentarzy

61,941 pasjonatów

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.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...