Отправка электронной почты через PHPMailer

#php #gmail #phpmailer #gmail-api

#php #gmail #phpmailer — программа для рассылки #gmail-api

Вопрос:

Я организовал код следующим образом:

 <?php

use PHPMailerPHPMailerPHPMailer;
use PHPMailerPHPMailerException;
use PHPMailerPHPMailerSMTP;

require '/home/g/grablmz2/psywomenandmen.ru/public_html/ads/libs/PHPMailer/Exception.php';
require '/home/g/grablmz2/psywomenandmen.ru/public_html/ads/libs/PHPMailer/PHPMailer.php';
require '/home/g/grablmz2/psywomenandmen.ru/public_html/ads/libs/PHPMailer/SMTP.php';


$mail = new PHPMailer(true);

try {
    echo 'start';
    //Server settings
    $mail->SMTPDebug = SMTP::DEBUG_SERVER;                      // Enable verbose debug output
    $mail->isSMTP();                                            // Send using SMTP
    $mail->Host       = 'smtp.gmail.com';                    // Set the SMTP server to send through
    $mail->SMTPAuth   = true;                                   // Enable SMTP authentication
    $mail->Username   = 'hidden';                     // SMTP username
    $mail->Password   = 'hidden';                               // SMTP password
    $mail->SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS;         // Enable TLS encryption; `PHPMailer::ENCRYPTION_SMTPS` encouraged
    $mail->Port       = 587;                                    // TCP port to connect to, use 465 for `PHPMailer::ENCRYPTION_SMTPS` above

    //Recipients
    $mail->setFrom('hidden', 'Mailer');
    $mail->addAddress('hidden', 'Michael');

   // Content
    $mail->Subject = 'Test';
    $mail->Body    = 'Test';

    $mail->send();
    echo 'Message has been sent';
} catch (Exception $e) {
    echo "Message could not be sent. Mailer Error: {$mail->ErrorInfo}";
}
 

Включено «Менее безопасное приложение» в Gmail. Логин и пароль проверяются дважды путем копирования и вставки в браузер.

Исключение:

 start2020-12-11 16:36:00 SERVER -> CLIENT: 220 smtp.gmail.com ESMTP c16sm931756lfb.236 - gsmtp
2020-12-11 16:36:00 CLIENT -> SERVER: EHLO psywomenandmen.ru
2020-12-11 16:36:00 SERVER -> CLIENT: 250-smtp.gmail.com at your service, [5.101.156.177]250-SIZE 35882577250-8BITMIME250-STARTTLS250-ENHANCEDSTATUSCODES250-PIPELINING250-CHUNKING250 SMTPUTF8
2020-12-11 16:36:00 CLIENT -> SERVER: STARTTLS
2020-12-11 16:36:00 SERVER -> CLIENT: 220 2.0.0 Ready to start TLS
2020-12-11 16:36:00 CLIENT -> SERVER: EHLO psywomenandmen.ru
2020-12-11 16:36:00 SERVER -> CLIENT: 250-smtp.gmail.com at your service, [5.101.156.177]250-SIZE 35882577250-8BITMIME250-AUTH LOGIN PLAIN XOAUTH2 PLAIN-CLIENTTOKEN OAUTHBEARER XOAUTH250-ENHANCEDSTATUSCODES250-PIPELINING250-CHUNKING250 SMTPUTF8
2020-12-11 16:36:00 CLIENT -> SERVER: AUTH LOGIN
2020-12-11 16:36:00 SERVER -> CLIENT: 334 VXNlcm5hbWU6
2020-12-11 16:36:00 CLIENT -> SERVER: [credentials hidden]
2020-12-11 16:36:00 SERVER -> CLIENT: 334 UGFzc3dvcmQ6
2020-12-11 16:36:00 CLIENT -> SERVER: [credentials hidden]
2020-12-11 16:36:01 SERVER -> CLIENT: 534-5.7.14 <https://accounts.google.com/signin/continue?sarp=1amp;scc=1amp;plt=AKgnsbv534-5.7.14 bXAEJKkJeqWCiVzTTlBWq9rxftBEamfSnaWIVJ0_dKDfgIuJ6a7XbSNz62WFwSuLLEQAO534-5.7.14 vcrBWQgPPNpki5WeHQlOd9wE2RNXirLYC1_og20m_xsWH4wka8pkDZJz0Iv-LySW>534-5.7.14 Please log in via your web browser and then try again.534-5.7.14 Learn more at534 5.7.14 https://support.google.com/mail/answer/78754 c16sm931756lfb.236 - gsmtp
2020-12-11 16:36:01 SMTP ERROR: Password command failed: 534-5.7.14 <https://accounts.google.com/signin/continue?sarp=1amp;scc=1amp;plt=AKgnsbv534-5.7.14 bXAEJKkJeqWCiVzTTlBWq9rxftBEamfSnaWIVJ0_dKDfgIuJ6a7XbSNz62WFwSuLLEQAO534-5.7.14 vcrBWQgPPNpki5WeHQlOd9wE2RNXirLYC1_og20m_xsWH4wka8pkDZJz0Iv-LySW>534-5.7.14 Please log in via your web browser and then try again.534-5.7.14 Learn more at534 5.7.14 https://support.google.com/mail/answer/78754 c16sm931756lfb.236 - gsmtp
SMTP Error: Could not authenticate.
2020-12-11 16:36:01 CLIENT -> SERVER: QUIT
2020-12-11 16:36:01 SERVER -> CLIENT: 221 2.0.0 closing connection c16sm931756lfb.236 - gsmtp
SMTP Error: Could not authenticate.
Message could not be sent. Mailer Error: SMTP Error: Could not authenticate.
 

Я сделал что-то не так с портами и другими опциями?

Ответ №1:

Нет, вы не сделали ничего плохого с портами и опциями, все в порядке. Что вы сделали неправильно, так это не прочитали сообщение об ошибке.

 <https://accounts.google.com/signin/continue?sarp=1amp;scc=1amp;plt=AKgnsbv
534-5.7.14 bXAEJKkJeqWCiVzTTlBWq9rxftBEamfSnaWIVJ0_dKDfgIuJ6a7XbSNz62WFwSuLLEQAO
534-5.7.14 vcrBWQgPPNpki5WeHQlOd9wE2RNXirLYC1_og20m_xsWH4wka8pkDZJz0Iv-LySW>
534-5.7.14 Please log in via your web browser and then try again.
534-5.7.14 Learn more at
534 5.7.14 https://support.google.com/mail/answer/78754 c16sm931756lfb.236 - gsmtp
 

Это дает ссылку на страницу, которая рассказывает вам больше, а также простую инструкцию: «Пожалуйста, войдите в систему через свой веб-браузер, а затем повторите попытку». Это означает, что вы должны войти в gmail через свой браузер, и только после этого попробуйте снова запустить свой скрипт.

Возможно, вам придется сделать еще один шаг, связанный со страницей разблокировки капчи в gmail, но вы узнаете об этом, прочитав руководство по устранению неполадок PHPMailer, в котором содержится полная информация об этой конкретной проблеме.