@RS-qrsk

PHPMailer не отправляет почту на yandex, что не так?

PHPMailer не отправляет почту по SMTP yandex, дебагер выдает следующее:

Could not authenticate.


Итак, по почте:
Все данные введены правильно, пароль приложений создан, все почтовые программы включены, почта активна
Сервер:
openssl - включено, сертификат висит

Процесс отправки
$username = '***********@yandex.ru';
$password = '******';

$host = 'smtp.yandex.ru';  // Пробовал 'ssl://smtp.yandex.ru'
$mail->SMTPDebug = SMTP::DEBUG_SERVER;
$mail->isSMTP();
$mail->Host = $host;
$mail->SMTPAuth = true;
$mail->Username = $username;
$mail->Password = $password;
$mail->SMTPSecure = PHPMailer::ENCRYPTION_SMTPS; 
$mail->Port = 465;

$mail->CharSet = 'UTF-8';
$mail->setFrom($username, '*****');
$mail->addAddress($user_email);  // $user_email = '******@yandex.ru'

$mail->isHTML(true); 
$mail->Subject = 'Тест';
$mail->Body = '<b>123</b>';
$mail->AltBody = 'Тестовое сообщение.';
$mail->send();


Что может быть не так?
  • Вопрос задан
  • 129 просмотров
Решения вопроса 2
@RS-qrsk Автор вопроса
В общем, кому интересно, проблема в итоге оказалась в хостинге, протестировали на другом и все заработало. К сожалению, владелец старого хостинга не захотел вносить изменения.
Если вы столкнетесь с аналогичной проблемой и вы уверены, что ваш код правильный, проверяйте с помощью OpenSSL, он вам точно покажет в чем проблема. В моем случае, проблема с сертификатами.
Ответ написан
kotomyava
@kotomyava
Системный администратор
Чтобы ящик заработал надо хотя бы один раз зайти в него через веб интерфейс яндекса.

SMTPSecure = 'TLS';
Port = 587;
В заголовке from должен быть тот же ящик, что и при авторизации.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
alexeyshi
@alexeyshi
Попробуйте включить imap в настройках почты (для пущей уверености можете установить галочку и на POP3)

60e614fdab74e563987077.jpeg

Так же у яши есть пароли для приложений, можете попробовать авторизовываться через сгенерированный пароль приложений.

60e61748b8d0e339577726.jpeg

А так же можно попробовать заменить ENCRYPTION_SMTPS на ENCRYPTION_STARTTLS и порт с 465 на 587
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы