MichaelAniskin
@MichaelAniskin
Немного в себе

SMTP PHP yandex.ru Пароль не был принят сервером как верный! Как исправить?

Пытаюсь пристроить скрипт для отправки писем.
часть скрипта....
fputs($socket, base64_encode($config['smtp_username']) . "\r\n");
	if (!server_parse($socket, "334", __LINE__)) {
		if ($config['smtp_debug']) echo '<p>Логин авторизации не был принят сервером!</p>';
		fclose($socket);
		return false;
	}
	fputs($socket,base64_encode($config['smtp_password']). "\r\n");
	if (!server_parse($socket, "235", __LINE__)) {
		if ($config['smtp_debug']) echo '<p>Пароль не был принят сервером как верный! Ошибка авторизации!</p>';
		fclose($socket);
		return false;
	}
	fputs($socket, "MAIL FROM: <".$config['smtp_username'].">\r\n");
	if (!server_parse($socket, "250", __LINE__)) {
		if ($config['smtp_debug']) echo '<p>Не могу отправить комманду MAIL FROM: </p>';
		fclose($socket);
		return false;
	}
.......
function server_parse($socket, $response, $line = __LINE__) {
	global $config;
	while (@substr($server_response, 3, 1) != ' ') {
		if (!($server_response = fgets($socket, 256))) {
			if ($config['smtp_debug']) echo "<p>Проблемы с отправкой почты!</p>$response<br>$line<br>";
 			return false;
 		}
	}
	if (!(substr($server_response, 0, 3) == $response)) {
		if ($config['smtp_debug']) echo "<p>Проблемы с отправкой почты!</p>$response<br>$line<br>";
		return false;
	}
	return true;
	
}

Много где встречал этот скрипт, и заблудится негде. Но выдает ошибку
'Проблемы с отправкой почты! 235 52 Пароль не был принят сервером как верный! Ошибка авторизации!
Испробовал ящик мэил и яндекс результат один. При этом этапы перед ним выполняются без ошибок. В чем я косячу???
  • Вопрос задан
  • 274 просмотра
Решения вопроса 1
Попробуйте в настройках профиля отключить пароли приложений. У меня похожая проблема была: ни один imap/smtp клиент не коннектился.
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
@brar
Возможно, yandex заблокировал попытки входа. Они так делают иногда, заставляя привязать телефонный номер. Надо зайти через вэб и подтвредить, на телефон придет код подтверждения.
Ссылку конкретно не помню (она у меня в ответе сервера smpt пришла, что-то типа ya.cc/blablabla ).
Ну или второй вариант попробовать использовать другой ящик, который точно работает в почтовом клиенте.
Естественно, это не единственный вариант вашей проблемы.

Также попробуйте просто скрипт:
<?php
require_once ( '/usr/share/php/libphp-phpmailer/autoload.php' ); // Убедитесь в этом пути.

//$mail = new PHPMailer;
$mail = new PHPMailer\PHPMailer\PHPMailer();

//Enable SMTP debugging. 
$mail->SMTPDebug = 3;                               
//Set PHPMailer to use SMTP.
$mail->isSMTP();            
//Set SMTP host name                          
$mail->Host = "smtp.yandex.ru";
//Set this to true if SMTP host requires authentication to send email
$mail->SMTPAuth = true;                          
//Provide username and password     
$mail->Username = "ВАШ_ЯЩИК";                 
$mail->Password = "ВАШ_ПАРОЛЬ";                           

$mail->SMTPSecure = "ssl";                           
//Set TCP port to connect to 
$mail->Port = 465;                                   
$mail->From = "ВАШ_ЯЩИК";
$mail->FromName = "пофигу_что_тут";
$mail->addAddress("ЯЩИК_АДРЕСАТА");
$mail->isHTML(true);
$mail->Subject = "Test MAIL 1";
$mail->Body = "<i>from сonsole</i>";
$mail->AltBody = "This is the plain text version of the email content";
if(!$mail->send()) 
{
    echo "Mailer Error: " . $mail->ErrorInfo;
} 
else 
{
    echo "Message has been sent successfully";
}

Нужно убедиться, что PHPMailer установлен.
Скрипт стопудово рабочий, только что проверил.
Ответ написан
@402d
начинал с бейсика на УКНЦ в 1988
Легче гуглопочту уговорить принимать почту напрямую(достаточно поставить крыж, что не безопастные входы разрещены) , чем майлру с яндексом.

Для них Вам придется еще SPF и DKIM настраивать.
Ответ написан
jamessvetsky
@jamessvetsky
Специалист по почтам и рассылкам
В тему вопроса:
https://7fk.ru/nastroyka-smtp/
Как раз упомянул про почты на яндексе и тд
Ответ написан
Ваш ответ на вопрос

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

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