Smtp yandex error authentication failed this user does not have access rights to this service

Вчера несколько часов промучился с отправкой писем по средствам exim через яндекс почту по smtp...

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

2 года отправлял служебные письма со своего сервера с помощью exim и яндекс почты — все работало ок, и вчера вдруг письма перестали уходить, в логах запись:

2020-09-30 23:49:26 1kNj2U-000Eco-Is plain authenticator failed H=smtp.yandex.ru [77.88.21.158] 535 5.7.8 Error: authentication failed: This user does not have access rights to this service
2020-09-30 23:49:26 1kNj2U-000Eco-Is login authenticator failed H=smtp.yandex.ru [77.88.21.158] 535 5.7.8 Error: authentication failed: This user does not have access rights to this service
2020-09-30 23:49:26 1kNj2U-000Eco-Is ** no-reply@*********.ru R=smarthost T=remote_smtp_smarthost H=smtp.yandex.ru [77.88.21.158] X=TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128 CV=yes DN="C=RU,L=Moscow,OU=ITO,O=Yandex LLC,CN=smtp.yandex.ru": SMTP error from remote mail server after pipelined MAIL FROM:<> SIZE=4172: 503 5.5.4 Error: send AUTH command first.
2020-09-30 23:49:26 1kNj2U-000Eco-Is Frozen (delivery error message)

перепробовал всякое, решение оказалось не очевидным — помогла простановка галок в настройках ящика, с которого осуществляется отправление: 

Почта->все настройки->почтовые программы

разрешить доступ к почтовому ящику с помощью почтовых клиентов, раздел imap, я на всякий поставил там все галки в том числе в разделе pop3

от службы поддержки яндекс почты получил подтверждение:

Мы рады, что теперь всё в порядке. Спасибо, что сообщили.

Уточнил информацию у специалистов: иногда отправка по SMTP может не работать, если не включен доступ по одному из протоколов IMAP или POP3, поэтому помогли именно ваши действия :)

Прошу прощения, что не упомянул об этом в прошлом письме.

на вопрос почему раньше все работало, хотя я этих галок не ставил, получил разъяснение:

Дело в том, что на первое место мы всегда ставим безопасность наших пользователей. Поэтому постоянно меняем алгоритмы безопасности при работе с почтовыми протоколами. Как уже говорилось ранее, то это одна из возможных причин, почему возникла такая ситуация.

В программе 1С существует возможность отправки клиентам счетов на оплату и других документов используя электронную почту Яндекс (mail.yandex.ru), для которой требуется специальный пароль. В этой статье мы подробно разберем, особенности настройки электронной почты <почта>@yandex.ru.

Многие пользователи ошибочно при настройке учетной записи в программе 1С указывают пароль от обычной учетной записи Yandex для авторизации.

особенности настройки электронной почты Яндекс в программах 1С и где взять специальный пароль приложения для настройки почты Yandex.Ru

Что приводит к появлению следующих сообщений об ошибке:

  • Отправка тестового сообщения не выполнена: не удалось авторизоваться.
  • Подключение к серверу входящей почты не выполнено: не удалось авторизоваться.
  • Проверьте правильность ввода логина и пароля, а также выбранный способ авторизации.
  • Обратитесь к администратору почтового сервера «yandex.ru».

Информация для техподдержки:
Аутентификация не прошла (SMTP error code 535 5.7.8 Error: authentication failed: This user does not have access rights to this service)
Произошла ошибка при работе с IMAP. Код ошибки: 28 Ответ сервера: LOGIN invalid credentials or IMAP is disabled sc=gNiGdg7SuSw1_300823_5-1f58a6409ead
Адрес почты: test1c-main@yandex.ru 
АдресСервераSMTP=»smtp.yandex.ru», ПортSMTP=»587″, ИспользоватьSSLSMTP=»Нет», ПользовательSMTP=»test1c-main@yandex.ru «, POP3ПередSMTP=»Нет». 

особенности настройки электронной почты Яндекс в программах 1С и где взять специальный пароль приложения для настройки почты Yandex.Ru

Это происходит по причине того, что для авторизации в программе 1С нельзя использовать обычный пароль, используемый для авторизации учетной записи на yandex.ru. Авторизоваться в программе 1С можно только с применением специального пароля, который включает в себя 16 символов, он генерируется системой безопасности Яндекс.

Как сгенерировать пароль приложения из 16 символов для 1С

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

особенности настройки электронной почты Яндекс в программах 1С и где взять специальный пароль приложения для настройки почты Yandex.Ru

Далее переходим в раздел Пароли и авторизация, после чего внизу экрана кликаем на Включить пароли приложений либо Пароли приложений, если вы уже получали пароль ранее.

особенности настройки электронной почты Яндекс в программах 1С и где взять специальный пароль приложения для настройки почты Yandex.Ru

После чего, в открывшемся окне, нам нужно нажать на кнопку Включить пароли приложений.

особенности настройки электронной почты Яндекс в программах 1С и где взять специальный пароль приложения для настройки почты Yandex.Ru

Следующим шагом, нам нужно подтвердить действие и нажать кнопку на Создать новый пароль.

особенности настройки электронной почты Яндекс в программах 1С и где взять специальный пароль приложения для настройки почты Yandex.Ru

Далее выбираем нужный тип приложения, в нашем случае: Почта (IMAP, POP3, SMTP).

особенности настройки электронной почты Яндекс в программах 1С и где взять специальный пароль приложения для настройки почты Yandex.Ru

Для быстрого ориентирования среди паролей — придумываем название, это может быть особенно актуально, когда используется несколько паролей. После того, как мы задали название, жмем кнопку Создать.

особенности настройки электронной почты Яндекс в программах 1С и где взять специальный пароль приложения для настройки почты Yandex.Ru

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

особенности настройки электронной почты Яндекс в программах 1С и где взять специальный пароль приложения для настройки почты Yandex.Ru

Данный пароль необходимо сохранить, именно он будет использоваться для авторизации учетной записи электронной почты Янедекс в программе 1С.

Важно, пароль отображается всего один раз, поэтому если вы вдруг по какой-то причине не сохранили его или сохранили неверно, то единственным вариантом выхода из данной ситуации будет — удалить и создать новый пароль.

особенности настройки электронной почты Яндекс в программах 1С и где взять специальный пароль приложения для настройки почты Yandex.Ru

После авторизации с вводом только что сгенерированного пароля, программа запустит процесс проверки настроек почты.

особенности настройки электронной почты Яндекс в программах 1С и где взять специальный пароль приложения для настройки почты Yandex.Ru

После чего, нам потребуется пройти проверку авторизации, для этого нам на почту будет отправлено проверочное письмо.

особенности настройки электронной почты Яндекс в программах 1С и где взять специальный пароль приложения для настройки почты Yandex.Ru

В результате правильных действий, на почту придет сообщение следующего содержания: «Это сообщение отправлено подсистемой электронной почты 1С:Предприятие«, данное сообщение и будет являться гарантией успешной авторизации. Теперь можно приступать к отправке электронных писем прямо из программ 1С.

особенности настройки электронной почты Яндекс в программах 1С и где взять специальный пароль приложения для настройки почты Yandex.Ru

В некоторых случаях, даже при правильности выполнении всех действий, программа может по прежнему выдавать ошибку. Это происходит по причине того, что в вашей почте Яндекс вообще отключена возможность использования сторонних приложений для работы с почтой. Чтобы устранить данную проблему, нужно перейти в настройки почты (значок шестеренки в правом верхнем углу), после чего в открывшемся окне выбрать раздел Безопасность.

особенности настройки электронной почты Яндекс в программах 1С и где взять специальный пароль приложения для настройки почты Yandex.Ru

Далее нам нужно в новом окне выбрать пункт Почтовые программы и в подразделе Разрешить доступ к почтовому ящику с помощью почтовых клиентов установите флаг С сервера imap.yandex.ru по протоколу IMAP и Способ авторизации по IMAP: Пароли приложений…

После выполнения данных действия, проблема должна быть решена, в результате вы получите на почту проверочное письмо, и сможете отправлять своим клиентам счета, накладные, договора и др. документы напрямую из 1С:Бухгалтерии.

особенности настройки электронной почты Яндекс в программах 1С и где взять специальный пароль приложения для настройки почты Yandex.Ru

PostfixYandex

Рассмотрим только основные моменты, связанные с авторизацией в Яндекс.

Ubuntu 20.04.4 LTS

postfix 3.4.13-0ubuntu1.2

Настройка Postfix

/etc/postfix/main.cf

...

smtp_use_tls = yes

smtp_tls_ciphers = high
smtp_tls_protocols = !SSLv2, !SSLv3
smtp_tls_CAfile = /etc/ssl/certs/ca-certificates.crt
# http://www.postfix.org/postconf.5.html#smtp_tls_wrappermode
smtp_tls_wrappermode = yes
smtp_tls_security_level = encrypt

smtp_sasl_auth_enable = yes
smtp_sasl_security_options = noanonymous
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd


relayhost: "[smtp.yandex.ru]:465"

/etc/postfix/sasl_passwd

[smtp.yandex.ru]:465 username@yandex.ru:PaS$w0rd

После создания / редактирования файла sasl_passwd, выполнить команду

postmap /etc/postfix/sasl_passwd

Настройка Яндекс

Создать отдельный пароль приложения для доступа к почте.

Управление профилемПароли и авторизацияПароли приложенийСоздать новый парольПочта

Разрешить доступ приложений к почте.

ПочтаНастройкиВсе настройкиПочтовые программы

Проставить галочки разрешения доступа по IMAP. ХЗ почему так, но в этом случае и SMTP заработает.

Ошибки

postfix/smtp[51400]: SMTPS wrappermode (TCP port 465) requires setting "smtp_tls_wrappermode = yes", and "smtp_tls_security_level = encrypt" (or stronger)

Установить значения параметров, как указано в тексте.

postfix/smtp[52699]: BAF67161CBF: to=<*****@gmail.com>, orig_to=<root>, relay=smtp.yandex.ru[77.88.21.158]:465, delay=45, delays=0/45/0.16/0, dsn=4.7.8,
 status=deferred (SASL authentication failed; server smtp.yandex.ru[77.88.21.158]
 said: 535 5.7.8 Error: authentication failed: Invalid user or password! 1653570970-Q6fbg8kMua-G9jmRQVx)

Проверить пароль в настройках Postfix. Выполнить команду postmap.

postfix/smtp[36780]: 0AAC3260AE1: to=<*****@gmail.com>, orig_to=<root>, relay=smtp.yandex.ru[77.88.21.158]:465, delay=14, delays=0.01/14/0.14/0, dsn=4.7.8,
 status=deferred (SASL authentication failed; server smtp.yandex.ru[77.88.21.158]
 said: 535 5.7.8 Error: authentication failed: This user does not have access rights to this service 1654483885-rKHV5iba9I-I5JaiOBs)

Проверить настройки доступа приложений к почтовому ящику в Яндекс почте.

postfix/qmgr[36409]: 9A18D160AE1: from=<root@localhost.lan>, size=375, nrcpt=1 (queue active)
postfix/smtp[37109]: 9A18D160AE1: to=<*****@gmail.com>, orig_to=<root>, relay=smtp.yandex.ru[77.88.21.158]:465, delay=60, delays=0.02/60/0.25/0.02, dsn=5.7.1,
 status=bounced (host smtp.yandex.ru[77.88.21.158] 
 said: 553 5.7.1 Sender address rejected: not owned by auth user. 1653385338-3n8BH7iZW3-NzJa3hex (in reply to MAIL FROM command))

Письмо содержит адрес From: (от кого) не совпадающий c почтовым адресом Яндекса. Проверьте настройки приложения, скрипта и т.п. укажите верный адрес отправителя.

Так же можно сделать принудительную замену адреса отправителя в настройках Postfix см. https://www.postfix.org/ADDRESS_REWRITING_README.html


Попробовал отправить через telnet:

$ telnet smtp.yandex.ru 25<br>
Trying 77.88.21.38...<br>
Connected to smtp.yandex.ru.<br>
Escape character is '^]'.<br>
220 smtp12.mail.yandex.net ESMTP (Want to use Yandex.Mail for your domain? Visit http://pdd.yandex.ru)<br>
EHLO yandex.ru<br>
250-smtp12.mail.yandex.net<br>
250-8BITMIME<br>
250-PIPELINING<br>
250-SIZE 42991616<br>
250-STARTTLS<br>
250-AUTH LOGIN PLAIN<br>
250-DSN<br>
250 ENHANCEDSTATUSCODES<br>
AUTH LOGIN<br>
334 VXNlcm5hbWU6<br>
bWFpbEBua3QubWU=<br>
334 UGFzc3dvcmQ6<br>
*******<br>
235 2.7.0 Authentication successful.<br>
MAIL FROM:mail@nkt.me  <br>
250 2.1.0 <mail@nkt.me> ok<br>
RCPT TO:dev@nkt.me<br>
250 2.1.5 <dev@nkt.me> recipient ok<br>
DATA<br>
354 Enter mail, end with "." on a line by itself<br>
Subject: Q^BP5Q^AQ^B<br>
To: dev@nkt.me<br>
.<br>
250 2.0.0 Ok: queued on smtp12.mail.yandex.net as 6VPPHaRoyW-LYnSwHm7<br>
QUIT<br>
221 2.0.0 Closing connection.<br>
Connection closed by foreign host.<br>

Все ок, все отправилось.

Добавил в app/config/parameters.yml:

mailer_transport: smtp<br>
mailer_host:      smtp.yandex.ru<br>
mailer_user:      mail@nkt.me<br>
mailer_password:  *****<br>
mailer_auth_mode:  login<br>
mailer_encryption: ~<br>
mailer_port:       25<br>

Пробую отправить письмо:

protected function execute(InputInterface $input, OutputInterface $output)<br>
{<br>
    $mailer = $this->getContainer()->get('mailer');<br>
    $to = $input->getOption('to');<br>
    $subject = $input->getOption('subject');<br>
    $body = $input->getOption('body');<br>
    $message = Swift_Message::newInstance()<br>
        ->setTo($to)<br>
        ->setSubject($subject)<br>
        ->setBody($body);<br>
    $output->writeln('To: ' . $to);<br>
    $output->writeln('Subject: ' . $subject);<br>
    $output->writeln('Body: ' . $body);<br>
    $output->writeln('Result: ' . $mailer->send($message));<br>
}<br>

Запускаю и результат:

$ app/console mail:send --to="dev@nkt.me" --body="Тест:)" --subject="тест"<br>
To: dev@nkt.me<br>
Subject: тест<br>
Body: Тест:)<br>
Result: 1<br>

Ну и собственно письма нет, иначе бы не написал вопрос.

С ssl и портами игрался, как понять в чем затык?


  • Вопрос задан

    более трёх лет назад

  • 10401 просмотр

Оказывается вот как надо:

protected function execute(InputInterface $input, OutputInterface $output)
{
    $mailer = $this->getContainer()->get('mailer');
    $transport = $mailer->getTransport();
    $transport->start();
    $message = Swift_Message::newInstance(
        $input->getOption('subject'),
        $input->getOption('body'),
        $input->getOption('content-type'),
        $input->getOption('charset')
    )
        ->setFrom(['mail@nkt.me' => 'Admin'])
        ->setTo($input->getOption('to'));
    $output->writeln(sprintf('Sent %s emails', $transport->send($message)));
    $transport->stop();
}

Смысл в start-stop

Пригласить эксперта

В общем я не совсем понял, что ты хочешь сделать и что этим добился. Но я действую так:
config.yml

swiftmailer:
    transport: %mailer_transport%
    host:      %mailer_host%
    port:      %mailer_port%
    username:  %mailer_user%
    encryption: %mailer_encryption%
    auth_mode:  %mailer_auth_mode%
    password:  %mailer_password%
    spool: 
        type: file
        path: "%kernel.root_dir%/../spool"

parameters.yml

parameters:
    mailer_transport: smtp
    mailer_host: smtp.yandex.ru
    mailer_user: *****@********
    mailer_password: *********
    mailer_encryption: ssl
    mailer_auth_mode: login
    mailer_port: 465

Дальше в коде отправляешь просто:
$this->get('mailer')->send($message);

А в крон впендюриваешь с абсолютными путями:
php app/console swiftmailer:spool:send --env=prod

Все, Профит.

Побробуйте указать From равным логину.

Попробуй запустить команду в prod режиме вместо dev ;)

Если будете пробовать подружить Symfony 5.2 Mailer с Яндекс Почтой:

1. Устанавливаете бандл по инструкции: https://symfony.com/doc/current/mailer.html
2. Создаёте аккаунт в Яндекс Почте.
3. Настраиваете Яндекс Почту. С паролем от вашей почты Яндекс не пустит в целях безопасности. Поэтому чтобы подключиться к SMTP извне, вам нужен пароль приложения. Создать его можно в настройках:

Почта -> Все настройки -> Безопасность -> пароли приложений

60485519db506674760280.png
4. В самом проекте в конфигурационный файл .env добавляете строку:

MAILER_DSN=smtp://login:password@smtp.yandex.ru:465

где login — часть вашей почты перед собакой (т.е. login@yandex.ru), password — пароль приложения, созданный на шаге 3.

5. Если после всех настроек в Symfony возникает ошибка:

smtp yandex Error: authentication failed: This user does not have access rights to this service

Заходите в

Почта -> Все настройки -> Почтовые программы

и ставьте галочку напротив IMAP, как на картинке:
60485380c0fcd631711369.png


  • Показать ещё
    Загружается…

10 февр. 2023, в 04:49

50000 руб./за проект

10 февр. 2023, в 02:20

3000 руб./за проект

10 февр. 2023, в 01:33

1500 руб./за проект

Минуточку внимания

Понравилась статья? Поделить с друзьями:

Читайте также:

  • Smtp protocol synchronization error next input sent too soon pipelining was not advertised
  • Smtp protocol error 530
  • Smtp protocol error 501
  • Smtp outlook error
  • Smtp error rcpt to command failed

  • 0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии