Sinatra 0 Опубликовано: 30 октября 2020 Рассказать Опубликовано: 30 октября 2020 Какие должны быть настройки чтобы почта заработала по smtp.yandex.ru Все перепробовал, не работает. Цитата Ссылка на сообщение Поделиться на других сайтах
webair 178 Опубликовано: 30 октября 2020 Рассказать Опубликовано: 30 октября 2020 6 часов назад, Sinatra сказал: Какие должны быть настройки чтобы почта заработала по smtp.yandex.ru Все перепробовал, не работает. Плохо пробовали ) Цитата Ссылка на сообщение Поделиться на других сайтах
Sinatra 0 Опубликовано: 31 октября 2020 Рассказать Опубликовано: 31 октября 2020 Автор именно так и прописывал, пробовал разные ящики на яндексе, не срабатывает, dle версия 14.0 срабатывает только PHP Mail Цитата Ссылка на сообщение Поделиться на других сайтах
Gameer 310 Опубликовано: 31 октября 2020 Рассказать Опубликовано: 31 октября 2020 14 минут назад, Sinatra сказал: именно так и прописывал, пробовал разные ящики на яндексе, не срабатывает, dle версия 14.0 срабатывает только PHP Mail Значит у вас не установлен или не настроен smtp на сервере. Цитата Ссылка на сообщение Поделиться на других сайтах
Spywear 3 Опубликовано: 31 октября 2020 Рассказать Опубликовано: 31 октября 2020 (изменено) Вместо SSL используйте TLS.Ну и естественно у вас должна быть зарегина почта на яндексе. А вообще,почта в DLE работает отлично и с PHP Mail.Подозреваю что у вас сервер на вашем компьютере... Изменено 31 октября 2020 пользователем Spywear Цитата Ссылка на сообщение Поделиться на других сайтах
Sinatra 0 Опубликовано: 31 октября 2020 Рассказать Опубликовано: 31 октября 2020 Автор Чистая почта зарегана на яндексе, хостинг на 1gb.ru, подозреваю что-то на хосте надо сделать Цитата Ссылка на сообщение Поделиться на других сайтах
webair 178 Опубликовано: 31 октября 2020 Рассказать Опубликовано: 31 октября 2020 3 часа назад, Sinatra сказал: Чистая почта зарегана на яндексе, хостинг на 1gb.ru, подозреваю что-то на хосте надо сделать Приведенные мной настройки 100% рабочие и испытаны на множестве сайтов именно с Яндекс Почтой. Возможно, вы используете ящик вида name@yandex.ru, в таком случае имя пользователя надо указывать name, без @yandex.ru Напишите хостеру, чтобы проверили доступность ssl://smtp.yandex.ru по 465 порту. Некоторые хостеры бывают блокируют соединение, почему то. Цитата Ссылка на сообщение Поделиться на других сайтах
procpay 2 Опубликовано: 13 декабря 2021 Рассказать Опубликовано: 13 декабря 2021 (изменено) 31.10.2020 в 17:58, webair сказал: Приведенные мной настройки 100% рабочие и испытаны на множестве сайтов именно с Яндекс Почтой. Возможно, вы используете ящик вида name@yandex.ru, в таком случае имя пользователя надо указывать name, без @yandex.ru Напишите хостеру, чтобы проверили доступность ssl://smtp.yandex.ru по 465 порту. Некоторые хостеры бывают блокируют соединение, почему то. Отвечу на вопрос из прошлого, Неа не будут работать ваши настройки, как и другие советы. Видимо у Яндекса для старых аккаунтов есть возможность по старому (тут не знаю точно), но для новых аккаунтов надо авторизоваться через XOAUTH2. Например чтобы отправлять почту через приложения типа Microsoft Outlook, Mozilla Thundebird, The Bat!, Opera Mail недостаточно будет указать логин/пароль и сервер smtp.yandex.ru необходимо создать еще пароль для внешнего приложения внутри яндекса: Это в настройках почты яндекс на сайте: Почта > Все настройки > Безопасность - Пароли приложений (там создаются доступы для приложений) Но перечисленные выше приложения могут автоматически пройти XOAUTH2 и получить токен для работы (это происходит при первом запуске - открывается страница яндекса с предложением авторизоваться обычным логимном/паролем), а веб-приложение не может пройти, поэтому это надо пройти это самому, для этого надо авторизоваться в почтовом ящике и перейти по URL https://oauth.yandex.com/ И жмем на кнопку "Create New Client". Получим страницу c формой https://prnt.sc/22t6x7t Вводим данные (это для себя) название, url to app site - ссылка на главную сраницу сайта Раздел Platforms выбираем Web services и там появится строка для ввода URL Callback URI #1: - указываем там также ссылку на главную страницу сайта Далее раздел Permissions* указываем права скрипту, т.к. интересует только отправка почты то отмечаем Yandex.Mail for domains Reading a list of domains and inboxes, connected domains, creating and removing inboxes in Yandex.Mail for domain - получение отправка почты с сайта Жмем на кнопку Create App И получаем данные: ID: d78f345345b0c6453515bbb453546be342 Password: d6b324263b34cdd54654c75c645676 Callback URL: http://site.ru TTL of token: At least 1 year Date created: 13.12.2021 Теперь нужно получить от яндекса “refresh token” для авторизации oauth2 для этого переходим по URL https://oauth.yandex.com/authorize?response_type=code&client_id=xxxxxxxxx - где xxxxxxxx - заменить на ID который получили ранее произойдет редирект (яндекс попросит авторизоваться в аккаунте почты) и перекинет на сайт (на url который указали в поле URL Callback URI #1) http://site.ru/?code=7019726 - где code=7019726 это код необходимый далее Теперь нужно отправить POST запрос на яндекс, можно попробовать онлайн-сервисы отправки запроса (типа https://reqbin.com/post-online) или создать свой скрипт или использовать дополнение для браузера, например RestMan (для Opera) https://prnt.sc/22t7bcz На URL https://oauth.yandex.com/token отправляем запрос с параметрами: grant_type = 'authorization_code' (эта строка без изменения, означает что мы запрашиваем код) code = '7019726' (это код из предыдущего шага который был отправлен на URL Callback) client_id = 'd78f345345b0c6453515bbb453546be342' (это ID созданного приложения) client_secret = 'd6b324263b34cdd54654c75c645676' (это пароль созданного приложения) описание тут: https://yandex.ru/dev/oauth/doc/dg/reference/console-client.html в ответ получим данные JSON { "access_token": "AQAAAAHshwPHvCIJHteHer83_GYunGNDE", "expires_in": 31536000, "refresh_token": "1:DFEDBtj3FHDTRet:HbJGTEIDVH4lCcr_R3IymDGTCDuImsXCggWSJ2:ekYf4_VT4YFDTRUEmqA", "token_type": "bearer" } где будет нужный refresh_token все данные получили теперь их нужно применить в PHPmailer, PHPmailer нужен не ниже 6й версии, в нем есть поддержка OAuth2, пример берем этот: https://github.com/PHPMailer/PHPMailer/blob/master/examples/gmail_xoauth.phps и переделываем под наши нужды (это тестовый скрипт, чтобы проверить работает отправка или нет): <?php // Import the PHPMailer Library use PHPMailer\PHPMailer\PHPMailer; use PHPMailer\PHPMailer\SMTP; use PHPMailer\PHPMailer\OAuth; // Import the Yandex provider for the OAuth-Client library use Aego\OAuth2\Client\Provider\Yandex; // Load composer's autoloader require 'vendor/autoload.php'; // Create PHPMailer object $mail = new PHPMailer(); // Use smtp $mail->isSMTP(); // Enable smtp debugging $mail->SMTPDebug = SMTP::DEBUG_SERVER; // Set smtp host $mail->Host = 'smtp.yandex.com'; // Set smtp port $mail->Port = 465; // Set smtp encryption to smtps $mail->SMTPSecure = PHPMailer::ENCRYPTION_SMTPS; // Enable smtp authentication $mail->SMTPAuth = true; // Set the authentication method to XOATH2 $mail->AuthType = 'XOAUTH2'; // Set this to your domain's email $email = 'admin@site.ru'; // Set this to your client id (from the client information) //ID приложения $clientId = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'; // Set this to your client password (from the client information) //Пароль приложения $clientSecret = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'; // Set this to your refresh token (the one you just copied) $refreshToken = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'; $provider = new Yandex( [ 'clientId' => $clientId, 'clientSecret' => $clientSecret, ] ); $mail->setOAuth( new OAuth( [ 'provider' => $provider, 'clientId' => $clientId, 'clientSecret' => $clientSecret, 'refreshToken' => $refreshToken, 'userName' => $email, ] ) ); // Set the email's from name $mail->setFrom($email, 'CodeIgniter 4 - JNote'); // Set the email's recipients $mail->addAddress('someuser@yandex.com', 'SomeUserName'); // Set the email's charset $mail->CharSet = PHPMailer::CHARSET_UTF8; // Set the email subject and body $mail->Subject = 'Test'; $mail->msgHTML('This Is A Test'); // Send the email! if ($mail->send()) { echo "Success!"; } else { echo $mail->ErrorInfo; } Прикол в том, что в движке DLE по-умолчанию старая версия PHPmailer-a, там нет модуля OAuth поэтому его придется обновлять руками, а потом не забыть про эти правки при обновлении DLE :( Изменено 13 декабря 2021 пользователем procpay 1 Цитата Ссылка на сообщение Поделиться на других сайтах
aleksandrhristich 107 Опубликовано: 14 декабря 2021 Рассказать Опубликовано: 14 декабря 2021 (изменено) 17 часов назад, procpay сказал: Прикол в том, что ... Все работает без проблем и без каких-либо правок в движке.Лично проверенно и на локальном сервере и на хостинге.Причем на своем сервере даже не делал каких-либо настроек,касающихся почты. Скрин настроек на локал.сервере . На яндексе также ничего нигде настраивал. Изменено 14 декабря 2021 пользователем aleksandrhristich Цитата Ссылка на сообщение Поделиться на других сайтах
kamensk 86 Опубликовано: 14 декабря 2021 Рассказать Опубликовано: 14 декабря 2021 1 час назад, aleksandrhristich сказал: Лично проверенно и на локальном сервере и на хостинге. Вот с такими настройками будет работать? Цитата Ссылка на сообщение Поделиться на других сайтах
aleksandrhristich 107 Опубликовано: 14 декабря 2021 Рассказать Опубликовано: 14 декабря 2021 1 час назад, kamensk сказал: Вот с такими настройками будет работать? Я же скрин предоставил с рабочими настройками,зачем спрашивать. С вашими настройками не пробывал,просто не к чему,т.к у меня все работает без проблем. Цитата Ссылка на сообщение Поделиться на других сайтах
kamensk 86 Опубликовано: 14 декабря 2021 Рассказать Опубликовано: 14 декабря 2021 2 часа назад, aleksandrhristich сказал: С вашими настройками не пробывал, Это не мой скрин - а с этой темы. Спасибо. Не обратил внимание на ссылку на ваш скрин. Теперь увидел. Принял к сведению. Попробую)) Цитата Ссылка на сообщение Поделиться на других сайтах
procpay 2 Опубликовано: 14 декабря 2021 Рассказать Опубликовано: 14 декабря 2021 (изменено) 6 часов назад, aleksandrhristich сказал: Все работает без проблем и без каких-либо правок в движке.Лично проверенно и на локальном сервере и на хостинге.Причем на своем сервере даже не делал каких-либо настроек,касающихся почты. Скрин настроек на локал.сервере . На яндексе также ничего нигде настраивал. пробовали отправлять на почту mail.ru, yandex.ru? Пробовали зарегистрировать именно новый почтовый аккаунт на яндексе и отправить через него? Для старых, возможно и работает отправка. у меня выдавал ошибку: "SMTP Error: data not accepted." ошибку можно глянуть в отладчике браузера F12 (или Ctrl+Shift + i - в Опере) вкладка Сеть а справа вкладка Ответ https://prnt.sc/22y174i после отправки сообщения в "обратной связи" сайта. здесь https://www.smtper.net/ можно проверить свои настройки SMTP-сервера, чтобы понять, что хостер или настройки сервера не влияют. (но потом лучше сменить пароль на всякий случай) Изменено 14 декабря 2021 пользователем procpay Цитата Ссылка на сообщение Поделиться на других сайтах
procpay 2 Опубликовано: 14 декабря 2021 Рассказать Опубликовано: 14 декабря 2021 Если бы данные были неверные там логин. пароль или протокол, то ошибка была бы SMTP Error: Could not authenticate - https://prnt.sc/22y1rua Цитата Ссылка на сообщение Поделиться на других сайтах
aleksandrhristich 107 Опубликовано: 15 декабря 2021 Рассказать Опубликовано: 15 декабря 2021 19 часов назад, procpay сказал: пробовали отправлять на почту mail.ru, yandex.ru? Пробовали зарегистрировать именно новый почтовый аккаунт на яндексе и отправить через него? Для старых, возможно и работает отправка. у меня выдавал ошибку: "SMTP Error: data not accepted." ошибку можно глянуть в отладчике браузера F12 (или Ctrl+Shift + i - в Опере) вкладка Сеть а справа вкладка Ответ https://prnt.sc/22y174i после отправки сообщения в "обратной связи" сайта. здесь https://www.smtper.net/ можно проверить свои настройки SMTP-сервера, чтобы понять, что хостер или настройки сервера не влияют. (но потом лучше сменить пароль на всякий случай) Регистрировать новую почту не охота.Будем надеяться что ответит на все это celsoft Цитата Ссылка на сообщение Поделиться на других сайтах
celsoft 6 072 Опубликовано: 15 декабря 2021 Рассказать Опубликовано: 15 декабря 2021 4 часа назад, aleksandrhristich сказал: Регистрировать новую почту не охота.Будем надеяться что ответит на все это celsoft Что я должен на это ответить? Все очень подробно описано в документации яндекса. Все работает независимо от того когда был создан аккаунт, старый или новый. Нужно лишь просто внимательно изучить вопрос, который подробно описан в документации самой почты. Нужно использовать не свой пароль от яндекса, а включить сначала доступ сторонних приложений, и создать специальный отдельный пароль для почты с доступом к SMTP серверу. Читайте яндекс, там все написано в разделе настроек безопасности в аккаунте а также в документации https://yandex.ru/support/mail/mail-clients/others.html Цитата Ссылка на сообщение Поделиться на других сайтах
aleksandrhristich 107 Опубликовано: 15 декабря 2021 Рассказать Опубликовано: 15 декабря 2021 1 час назад, celsoft сказал: Что я должен на это ответить? Все очень подробно описано в документации яндекса. Все работает независимо от того когда был создан аккаунт, старый или новый. Нужно лишь просто внимательно изучить вопрос, который подробно описан в документации самой почты. Нужно использовать не свой пароль от яндекса, а включить сначала доступ сторонних приложений, и создать специальный отдельный пароль для почты с доступом к SMTP серверу. Читайте яндекс, там все написано в разделе настроек безопасности в аккаунте. Ну я как бы ничего такого плохого не имел ввиду.У меня аккаунт на яндексе уже много лет,может именно поэтому все работает без доп.настроек и т.п и без проблем. Цитата Ссылка на сообщение Поделиться на других сайтах
procpay 2 Опубликовано: 15 декабря 2021 Рассказать Опубликовано: 15 декабря 2021 1 час назад, aleksandrhristich сказал: Ну я как бы ничего такого плохого не имел ввиду.У меня аккаунт на яндексе уже много лет,может именно поэтому все работает без доп.настроек и т.п и без проблем. да, в том и суть, Вы скорее всего используете свой обычный пароль от яндекса и у Вас всё работает как и работало ранее, а для новых аккаунтов надо создавать пароли для внешних приложений (как и описал) выше. Если бы яндекс ввел это нововведение для всех аккаунтов и старых тоже, то на куче сайтов перестала работать рассылка и было бы куча негатива. У gmail.com, кстати, можно использовать обычный пароль от аккаунта, просто там надо включить доступ для ненадежных приложений Цитата Ссылка на сообщение Поделиться на других сайтах
Рекомендованные сообщения
Присоединяйтесь к обсуждению
Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.