В последнее время многие пользователи 1С:Предприятие 7.7 сталкиваются с проблемой: привычная отправка и получение почты перестает работать. Чаще всего это связано с тем, что почтовые серверы (Яндекс, Google, Mail.ru и другие) перешли на современные стандарты безопасности, требующие защищенного соединения через протоколы SSL/TLS, которые старые компоненты 1С не поддерживают "из коробки".
Давайте вместе разберемся, почему это происходит и как выполняется настройка почты 1С 7.7 через SSL в современных условиях, чтобы шаг за шагом восстановить работоспособность почты в нашей "семерке".
Самый распространенный способ — это работа с почтой (SMTP, POP3) через SSL с использованием внешней компоненты DialMail, но для работы с шифрованием ей нужны помощники — специальные библиотеки OpenSSL. Выясним причину, по которой стандартная настройка может не работать: компонента сама по себе не умеет шифровать трафик, и ей нужно "подсказать", как это делать. В некоторых случаях может быть полезна расширенная библиотека процедур и функций для 1С 7.7, включающая инструменты для работы с SMTP серверами.
Разберем по шагам, что необходимо сделать для правильной настройки.
Поиск и удаление старых библиотек. Это критически важный шаг. Прежде чем устанавливать новые файлы, необходимо убедиться, что в системе не осталось старых версий библиотек, которые могут вызывать конфликты. Проверьте и удалите файлы libeay32.dll и ssleay32.dll из стандартных каталогов.
Загрузка необходимых библиотек. Для работы с SSL нам понадобятся две библиотеки: libeay32.dll и ssleay32.dll. Если ваша конфигурация подразумевает специфические задачи, такие как отправка счетов из 1С ТиС через SSL, убедитесь, что используемые библиотеки совместимы с вашей версией компоненты.
Правильное размещение библиотек. После удаления старых версий скопируйте новые файлы в системный каталог (System32 для 32-битных или SysWOW64 для 64-битных систем).
Настройка параметров в 1С. В коде подключения к почтовому серверу необходимо указать, что мы используем SSL. Посмотрим на пример кода для компоненты DialMail:
// Создаем объект для работы с почтой
Почта = СоздатьОбъект("AddIn.DialMail");
// Устанавливаем параметры подключения к POP3-серверу
Почта.СерверPOP3 = "pop.yandex.ru";
Почта.ПортPOP3 = 995;
Почта.Пользователь = "ВашЛогин";
Почта.Пароль = "ПарольПриложения"; // ВАЖНО: не основной пароль!
Почта.ИспользоватьSSL_POP3 = 1;
// Устанавливаем параметры подключения к SMTP-серверу
Почта.СерверSMTP = "smtp.yandex.ru";
Почта.ПортSMTP = 465;
Почта.АутентификацияSMTP = 1;
Почта.ИспользоватьSSL_SMTP = 1;
Даже при идеально настроенной компоненте вы можете столкнуться с ошибками аутентификации. Причина — современные требования безопасности, в частности, двухфакторная аутентификация. Если стандартные методы не помогают, иногда стоит рассмотреть отправку почты с использованием CDO-компоненты, которая встроена в Windows и может работать там, где внешние библиотеки дают сбой.
Если на вашем почтовом ящике включена 2FA, использовать обычный пароль нельзя. Для этого необходимо сгенерировать специальный пароль приложения в настройках безопасности вашего аккаунта.
Этот подход особенно актуален, когда вам требуется массово отправлять почтой печатные формы любых документов в формате Excel напрямую из программы.
Если предыдущие способы не помогли, существует надежный обходной путь — использование Stunnel. Это создает локальный зашифрованный туннель, позволяя 1С работать с почтой "по старинке".
Проанализируем, как это работает: 1С подключается к локальному адресу (127.0.0.1), а stunnel "заворачивает" трафик в SSL. Это универсальный метод, который позволяет реализовать даже такие сложные задачи, как отправка писем с вложениями через Python, если возможностей встроенного языка 1С 7.7 становится недостаточно.
Рассмотрим настройку stunnel.conf:
[yandex_pop3]
accept = 127.0.0.1:110
connect = pop.yandex.ru:995
[yandex_smtp]
accept = 127.0.0.1:25
connect = smtp.yandex.ru:465
В коде 1С при использовании Stunnel настройки упрощаются:
Почта.СерверPOP3 = "127.0.0.1";
Почта.ПортPOP3 = 110;
Почта.СерверSMTP = "127.0.0.1";
Почта.ПортSMTP = 25;
Почта.ИспользоватьSSL_POP3 = 0; // Шифрует уже Stunnel
Почта.ИспользоватьSSL_SMTP = 0;
Этот метод является самым надежным и позволяет стабильно работать с почтой вне зависимости от изменений в требованиях почтовых сервисов.