Задать вопрос
@HexUserHex

Почему не работает отправка почты из PHPMailer используя smtp.yandex-а?

Добрый день,

пробую отправить сам себе тестовое сообщение используя SMTP сервер yandex-а, набросал вот такой пример, но в результате письма я так и не получаю как и ошибок в процессе его выполнения.

на сервере присутствуют два конфига php.ini:
/etc/php/7.3/apache2/php.ini
/etc/php/7.3/cli/php.ini


В обоих конфигах я указал smtp сервер и порт с офф страницы яндекса:
SMTP = smtp.yandex.ru
и
smtp_port = 465

Сам phpmailer ставил используя composer:
composer require phpmailer/phpmailer

Пример скрипта:
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;
require 'vendor/autoload.php';
$mail = new PHPMailer;

$mailToAddr = 'mytestmail@yandex.ru';
$subject = 'test';
$message = 'message';

try {
  $mail->IsSMTP();                                                            // Set mailer to use SMTP
  $mail->Host = 'smtp.yandex.ru';                                     // Specify main and backup server
  $mail->Port = 465;                                                         // Set the SMTP port
  $mail->SMTPAuth = true;                                               // Enable SMTP authentication
  $mail->Username = 'mytestmail@yandex.ru';                // SMTP username
  $mail->Password = 'nerabotayouposng';                        // SMTP passwora
  $mail->SMTPSecure = 'ssl';                                            // Enable encryption, 'ssl' also accepted                                                                                            

  $mail->From = 'mytestmail@yandex.ru';
  $mail->FromName = 'TEST';
  $mail->AddAddress($mailToAddr, 'test');

  $mail->Subject = $subject;
  $mail->Body = $message;

  $mail->Send()

} catch(phpmailerException $e) {
  echo $e->errorMessage();
}

?>


Перед запуском очищаю полностью syslog, после запускаю свой скрипт и через 2-3 минуты в логах вижу:
Nov  7 13:39:01 vm274093 CRON[22718]: (root) CMD (  [ -x /usr/lib/php/sessionclean ] && if [ ! -d /run/systemd/system ]; then /usr/lib/php/sessionclean; fi)
Nov  7 13:39:01 vm274093 systemd[1]: Starting Clean php session files...
Nov  7 13:39:01 vm274093 systemd[1]: phpsessionclean.service: Succeeded.
Nov  7 13:39:01 vm274093 systemd[1]: Started Clean php session files.
Nov  7 13:40:01 vm274093 CRON[22922]: (smmsp) CMD (test -x /etc/init.d/sendmail && test -x /usr/share/sendmail/sendmail && test -x /usr/lib/sm.bin/sendmail && /usr/share/sendmail/sendmail cron-msp)


Насколько я понимаю syslog не отсылает письма мгновенно а 'собирает их для дальнейшей отправки пачками'?
В общем ошибок в логах нет...

Подскажите что может быть не так?
  • Вопрос задан
  • 2363 просмотра
Подписаться 1 Простой 1 комментарий
Решения вопроса 2
xez
@xez
TL Junior Roo
Yandex требует получать отдельный пароль для "почтовых программ "
Ответ написан
suffix_ixbt
@suffix_ixbt
https://www.babai.ru/
Полная инструкция:

https://phpstack.ru/php/smtp-ot-yandex-kak-otpravi...

Обратите внимания на "пароли приложений"
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
402d
@402d
начинал с бейсика на УКНЦ в 1988
потому, что спамеры всех достали и настроить теперь рассылку это не только несколько строчек на PHP.
SPF, DKIM и DMARC - читайте что такое.
ну и плайн авторизацию большинство почтовиков не любят
Ответ написан
ThunderCat
@ThunderCat Куратор тега PHP
{PHP, MySql, HTML, JS, CSS} developer
$mail->SMTPDebug = 3; и смотреть что происходит, все что тут понаписали - тыканье пальцем в небо. Почему никто не сказал что надо разбираться в чем проблема, вместо выдвижения странных необоснованных предположений - загадка.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы