Давайте рассмотрим, как можно отправить E-mail через SMTP Яндекса, с помощью PHPMailer
Уделите особое внимание тому, что в поле "From:" при отправке почты, обязательно должна быть именно почта аккаунта, который вы используете, в данном случае your-email-address@yandex.ru
Пример отправки почты для PHPMailer
$mail = new PHPMailer(); $mail->CharSet = 'UTF-8'; $yourEmail = 'your-email-address@yandex.ru'; // ваш email на яндексе $password = 'qwerty123'; // ваш пароль к яндексу или пароль приложения // настройки SMTP $mail->Mailer = 'smtp'; $mail->Host = 'ssl://smtp.yandex.ru'; $mail->Port = 465; $mail->SMTPAuth = true; $mail->Username = $yourEmail; // ваш email - тот же что и в поле From: $mail->Password = $password; // ваш пароль; // формируем письмо // от кого: это поле должно быть равно вашему email иначе будет ошибка $mail->setFrom($yourEmail, 'Ваше Имя'); // кому - получатель письма $mail->addAddress('info@phpstack.ru', 'Имя Получателя'); // кому $mail->Subject = 'Проверка'; // тема письма $mail->msgHTML("<html><body> <h1>Проверка связи!</h1> <p>Это тестовое письмо.</p> </html></body>"); if ($mail->send()) { // отправляем письмо echo 'Письмо отправлено!'; } else { echo 'Ошибка: ' . $mail->ErrorInfo; }
В вашем аккаунте яндекса должна быть включена следующая настройка:
Найти ее можно перейдя в ваш аккаунт Почта → Все настройки → Почтовые программы
Не смотря на то, что smtp тут как будто не причем, для отправки через smtp нужно включить IMAP.
Также вы обязательно должны зайти в свой аккаунт почты и принять пользовательское соглашение.
Здесь я описал проблемы, с которыми сам столкнулся при настройке SMTP от Yandex. Если у вас чего-то не получилось, пожалуйста напишите об этом в комментариях
Замечание по безопасности
Как видно на скриншоте выше, в настройках красуется надпись о то, что использовать пароль от аккаунта небезопасно.
Это действительно так, и лучше всего одельно задать пароль для SMTP при помощи этой инструкции https://yandex.ru/support/id/authorization/app-passwords.html
Наш скрипт в этом случае будет отличаться только тем, что в нем будет использоваться другой пароль.