При настройке системной учетной записи в 1С для автоматической рассылки писем, уведомлений или отчетов программисты и администраторы часто сталкиваются с ошибкой аутентификации. В системном журнале или окне программы появляется сообщение следующего вида: «Ошибка при вызове метода контекста (Подключиться): Аутентификация не прошла (SMTP error code 535 5.7.8 Error: authentication failed: Your message looks like spam...)». Особенно часто эта проблема возникает при использовании новых, только что созданных почтовых ящиков на сервере Яндекс.
Давайте подробно проанализируем причины этой неисправности и разберем по шагам, как правильно настроить интеграцию 1С и Яндекс.Почты, чтобы обойти спам-фильтры и обеспечить стабильную отправку сообщений.
Современные почтовые сервисы, включая Яндекс, ведут активную борьбу со спам-рассылками. Когда внешнее приложение (в нашем случае платформа 1С) пытается подключиться к новому ящику по протоколу SMTP и сразу отправить письмо, алгоритмы безопасности классифицируют это действие как подозрительное поведение робота. Существует несколько критических факторов, из-за которых сервер Яндекса возвращает ошибку 535:
25 (для SMTP) без шифрования моментально распознается спам-фильтрами как уязвимый или вредоносный трафик.Рассмотрим подробнее каждое решение, которое поможет полностью устранить данную проблему.
Если вы видите ошибку «Your message looks like spam», это означает, что почтовая система временно заблокировала отправку до подтверждения того, что вы являетесь реальным человеком, а не спам-ботом. Нам необходимо выполнить следующие действия:
По умолчанию доступ к ящику через сторонние почтовые клиенты закрыт. Нам нужно принудительно его разрешить. Разберем, как это сделать:
Использование обычного пароля от почты в коде 1С или в настройках системной учетной записи приведет к ошибке авторизации 535. Для внешних программ Яндекс требует генерации отдельного безопасного ключа доступа. Выполним следующие настройки:
Перейдем непосредственно к настройкам в 1С. В сообщении автора темы были указаны порты: smtp.yandex.ru 25 и pop.yandex.ru 110. Это классическая ошибка. Работа через эти порты не защищена шифрованием, что делает передачу данных небезопасной и приводит к блокировкам со стороны почтового сервера.
Нам необходимо перевести подключение на защищенные каналы SSL/TLS. Проанализируем правильные параметры для настройки:
smtp.yandex.ru, порт 465. Обязательно должен быть включен флаг «Использовать SSL» (или «Безопасное соединение»).imap.yandex.ru, порт 993 с включенным SSL (рекомендуется использовать IMAP вместо POP3).pop.yandex.ru, порт 995 с SSL.Давайте посмотрим, как правильно написать код инициализации почтового профиля в 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С:Предприятие 8.2), которая физически не умеет работать со встроенным SSL-шифрованием для почтовых протоколов. В таком случае непосредственное подключение к портам 465 или 993 вызовет системную ошибку.
Для решения этой проблемы мы можем использовать утилиту-проксировщик stunnel. Схема работы выглядит следующим образом:
25) и перенаправлять их на сервер Яндекса уже в защищенном виде по SSL (на порт 465).127.0.0.1 и локальный порт без шифрования.Использование этого метода позволяет сохранить совместимость старых версий 1С с современными требованиями безопасности крупных почтовых провайдеров.
Выполнив все описанные шаги, мы гарантированно избавимся от ошибки аутентификации «SMTP error code 535» и обеспечим надежную и стабильную доставку писем из базы данных 1С.