Как исправить ошибку «Your message looks like spam» (SMTP error code 535) при отправке почты из 1С через Яндекс

Программист 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

При настройке системной учетной записи в 1С для автоматической рассылки писем, уведомлений или отчетов программисты и администраторы часто сталкиваются с ошибкой аутентификации. В системном журнале или окне программы появляется сообщение следующего вида: «Ошибка при вызове метода контекста (Подключиться): Аутентификация не прошла (SMTP error code 535 5.7.8 Error: authentication failed: Your message looks like spam...)». Особенно часто эта проблема возникает при использовании новых, только что созданных почтовых ящиков на сервере Яндекс.

Давайте подробно проанализируем причины этой неисправности и разберем по шагам, как правильно настроить интеграцию 1С и Яндекс.Почты, чтобы обойти спам-фильтры и обеспечить стабильную отправку сообщений.

Выясняем причины: почему Яндекс блокирует отправку из 1С?

Современные почтовые сервисы, включая Яндекс, ведут активную борьбу со спам-рассылками. Когда внешнее приложение (в нашем случае платформа 1С) пытается подключиться к новому ящику по протоколу SMTP и сразу отправить письмо, алгоритмы безопасности классифицируют это действие как подозрительное поведение робота. Существует несколько критических факторов, из-за которых сервер Яндекса возвращает ошибку 535:

  1. Отсутствие первичной верификации аккаунта. Если при создании почтового ящика не был привязан реальный номер мобильного телефона, любая программная активность будет заблокирована.
  2. Непринятое лицензионное соглашение. Новый ящик не «активирован» в веб-интерфейсе. Пока пользователь лично не зайдет в ящик через браузер и не завершит его настройку, доступ по внешним протоколам закрыт.
  3. Отключенный доступ для сторонних программ. В современных настройках безопасности Яндекса по умолчанию запрещено подключение по протоколам SMTP, POP3 и IMAP для внешних клиентов.
  4. Использование основного пароля учетной записи. Авторизация в сторонних программах (включая 1С) по стандартному паролю от почтового ящика заблокирована на уровне платформы Яндекс ID. Требуется специальный пароль приложения.
  5. Устаревшие порты подключения. Использование стандартного порта 25 (для SMTP) без шифрования моментально распознается спам-фильтрами как уязвимый или вредоносный трафик.

Рассмотрим подробнее каждое решение, которое поможет полностью устранить данную проблему.

Шаг 1. Первичная верификация ящика и прохождение капчи

Если вы видите ошибку «Your message looks like spam», это означает, что почтовая система временно заблокировала отправку до подтверждения того, что вы являетесь реальным человеком, а не спам-ботом. Нам необходимо выполнить следующие действия:

  1. Откроем любой веб-браузер и перейдем на сайт Яндекс.Почты.
  2. Авторизуемся под учетными данными проблемного почтового ящика.
  3. Если при входе система просит подтвердить номер телефона или ввести символы с картинки (капчу), обязательно проходим эту процедуру.
  4. Если это первый вход в ящик, перед нами появится стартовое окно приветствия. Нам нужно принять пользовательское соглашение, выбрать оформление и завершить процесс создания ящика.
  5. Обязательно отправляем одно любое тестовое письмо вручную через веб-интерфейс на любой другой сторонний адрес (например, на Mail.ru или Gmail), чтобы подтвердить активность ящика.

Шаг 2. Разрешение доступа почтовым программам в настройках Яндекса

По умолчанию доступ к ящику через сторонние почтовые клиенты закрыт. Нам нужно принудительно его разрешить. Разберем, как это сделать:

  1. В веб-интерфейсе Яндекс.Почты в правом верхнем углу нажимаем на иконку «Шестеренка» (Настройки) и выбираем пункт «Все настройки».
  2. В левом меню переходим в раздел «Почтовые программы».
  3. Устанавливаем галочки напротив пунктов «С сервера imap.yandex.ru по протоколу IMAP» (это более современный протокол для работы с входящей почтой, чем устаревший POP3).
  4. Сохраняем изменения.

Шаг 3. Создание специального пароля приложения

Использование обычного пароля от почты в коде 1С или в настройках системной учетной записи приведет к ошибке авторизации 535. Для внешних программ Яндекс требует генерации отдельного безопасного ключа доступа. Выполним следующие настройки:

  1. Переходим в меню управления аккаунтом (Яндекс ID) в раздел «Безопасность».
  2. Находим подраздел «Доступ к вашим данным» и выбираем пункт «Пароли приложений».
  3. Нажимаем кнопку «Создать новый пароль» и выбираем тип приложения — «Почта».
  4. Задаем имя для пароля (например, «1С:Предприятие»), чтобы в будущем понимать, для какой программы он был создан.
  5. Яндекс сгенерирует уникальный 16-значный символьный код. Внимание: этот пароль будет показан только один раз! Нам необходимо скопировать его без пробелов.
  6. Именно этот сгенерированный пароль мы будем вводить в поле «Пароль» при настройке почты в 1С вместо основного пароля от учетной записи.

Шаг 4. Настройка правильных портов и SSL-шифрования в 1С

Перейдем непосредственно к настройкам в 1С. В сообщении автора темы были указаны порты: smtp.yandex.ru 25 и pop.yandex.ru 110. Это классическая ошибка. Работа через эти порты не защищена шифрованием, что делает передачу данных небезопасной и приводит к блокировкам со стороны почтового сервера.

Нам необходимо перевести подключение на защищенные каналы SSL/TLS. Проанализируем правильные параметры для настройки:

Пример программной настройки подключения в 1С

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


Профиль = Новый ИнтернетПочтовыйПрофиль;

// Настройки сервера исходящей почты (SMTP)
Профиль.АдресСервераSMTP = "smtp.yandex.ru";
Профиль.ПортSMTP = 465;
Профиль.ПользовательSMTP = "myemail@yandex.ru"; // Ваша полная почта
Профиль.ПарольSMTP = "abcd-efgh-ijkl-mnop";   // Пароль приложения, созданный в Шаге 3
Профиль.ИспользоватьSSLSMTP = Истина;
Профиль.ТолькоПредопределенныйМетодАутентификацииSMTP = Ложь;

// Настройки сервера входящей почты (IMAP)
Профиль.АдресСервераIMAP = "imap.yandex.ru";
Профиль.ПортIMAP = 993;
Профиль.Пользователь = "myemail@yandex.ru";
Профиль.Пароль = "abcd-efgh-ijkl-mnop";        // Пароль приложения
Профиль.ИспользоватьSSLIMAP = Истина;

// Таймаут соединения в секундах
Профиль.ВремяОжидания = 60;

После создания профиля мы можем выполнить тестовую отправку сообщения с помощью объекта ИнтернетПочта, чтобы убедиться в отсутствии ошибок:


Почта = Новый ИнтернетПочта;
Попытка
    Почта.Подключиться(Профиль);
    
    Письмо = Новый ИнтернетПочтовоеСообщение;
    Письмо.ИмяОтправителя = "Робот 1С";
    Письмо.Отправитель = "myemail@yandex.ru";
    Письмо.Получатели.Добавить("recipient@example.com");
    Письмо.Тема = "Тестовое письмо из 1С";
    
    Текст = Письмо.Тексты.Добавить();
    Текст.Текст = "Проверка отправки почты через защищенное соединение SSL прошла успешно!";
    Текст.ТипТекста = ТипТекстаПочтовогоСообщения.ПростойТекст;
    
    Почта.Послать(Письмо);
    Почта.Отключиться();
    Сообщить("Письмо успешно отправлено!");
Исключение
    Сообщить("Произошла ошибка при отправке почты: " + ОписаниеОшибки());
КонецПопытки;

Что делать, если используется старая платформа 1С?

Иногда специалисты сталкиваются с ситуацией, когда конфигурация работает на устаревшей версии платформы (например, старые релизы 1С:Предприятие 8.2), которая физически не умеет работать со встроенным SSL-шифрованием для почтовых протоколов. В таком случае непосредственное подключение к портам 465 или 993 вызовет системную ошибку.

Для решения этой проблемы мы можем использовать утилиту-проксировщик stunnel. Схема работы выглядит следующим образом:

  1. На сервере, где выполняется код 1С, устанавливается локальная программа stunnel.
  2. Она настраивается так, чтобы принимать входящие запросы от 1С на локальные порты без шифрования (например, локальный порт 25) и перенаправлять их на сервер Яндекса уже в защищенном виде по SSL (на порт 465).
  3. В настройках почтового профиля 1С в качестве адреса сервера указывается локальный IP-адрес 127.0.0.1 и локальный порт без шифрования.

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

Выполнив все описанные шаги, мы гарантированно избавимся от ошибки аутентификации «SMTP error code 535» и обеспечим надежную и стабильную доставку писем из базы данных 1С.

← На главную