В последнее время многие пользователи 1С:Предприятие 7.7 сталкиваются с проблемой: привычная отправка и получение почты перестает работать. Чаще всего это связано с тем, что почтовые серверы (Яндекс, Google, Mail.ru и другие) перешли на современные стандарты безопасности, требующие защищенного соединения через протоколы SSL/TLS, которые старые компоненты 1С не поддерживают "из коробки".
Давайте вместе разберемся, почему это происходит и как шаг за шагом восстановить работоспособность почты в нашей "семерке". Проанализируем несколько проверенных способов решения этой задачи.
Самый распространенный способ — это использование внешней компоненты DialMail, но для работы с шифрованием ей нужны помощники — специальные библиотеки OpenSSL. Выясним причину, по которой стандартная настройка может не работать: компонента сама по себе не умеет шифровать трафик, и ей нужно "подсказать", как это делать.
Разберем по шагам, что необходимо сделать для правильной настройки.
Поиск и удаление старых библиотек. Это критически важный шаг. Прежде чем устанавливать новые файлы, необходимо убедиться, что в системе не осталось старых версий библиотек, которые могут вызывать конфликты. Проверьте и удалите файлы libeay32.dll и ssleay32.dll из следующих каталогов:
C:\Program Files\1Cv77\BIN\)C:\Windows\system32\C:\Windows\SysWOW64\Загрузка необходимых библиотек. Для работы с SSL нам понадобятся две библиотеки: libeay32.dll и ssleay32.dll. Рекомендуется использовать проверенные версии, например, из дистрибутива OpenSSL 0.9.7 или 0.9.8, так как они наиболее совместимы со старыми компонентами. Часто эти файлы можно найти в архивах с компонентой Indy.
Правильное размещение библиотек. После удаления старых версий скопируйте новые файлы libeay32.dll и ssleay32.dll в системный каталог. Выбор каталога зависит от разрядности вашей операционной системы:
C:\Windows\System32\C:\Windows\SysWOW64\ (именно сюда, так как процесс 1С 7.7 является 32-битным).Также можно поместить эти файлы в папку с самой компонентой DialMail.
Настройка параметров в 1С. В коде подключения к почтовому серверу необходимо указать, что мы используем SSL. Посмотрим на пример кода для компоненты DialMail:
// Создаем объект для работы с почтой
Почта = СоздатьОбъект("AddIn.DialMail");
// Устанавливаем параметры подключения к POP3-серверу (для получения почты)
Почта.СерверPOP3 = "pop.yandex.ru";
Почта.ПортPOP3 = 995; // Стандартный порт для POP3 через SSL
Почта.Пользователь = "ВашЛогин";
Почта.Пароль = "ПарольПриложения"; // ВАЖНО: не основной пароль!
Почта.ИспользоватьSSL_POP3 = 1; // Включаем использование SSL
// Устанавливаем параметры подключения к SMTP-серверу (для отправки почты)
Почта.СерверSMTP = "smtp.yandex.ru";
Почта.ПортSMTP = 465; // Стандартный порт для SMTP через SSL
Почта.АутентификацияSMTP = 1; // Включаем аутентификацию
Почта.ИспользоватьSSL_SMTP = 1; // Включаем использование SSL
// Дальнейшая работа с почтой...
Даже при идеально настроенной компоненте вы можете столкнуться с ошибкой аутентификации. Причина — современные требования безопасности почтовых сервисов, в частности, двухфакторная аутентификация (2FA).
Если на вашем почтовом ящике включена 2FA, использовать обычный пароль для входа из сторонних приложений, таких как 1С, нельзя. Для этого необходимо сгенерировать специальный пароль приложения.
Зайдите в настройки безопасности вашего почтового аккаунта (Яндекс, Google, Mail.ru и т.д.).
Найдите раздел "Пароли приложений", "Доступ к вашим данным" или похожий по смыслу.
Создайте новый пароль. Обычно сервис просит указать название приложения, для которого создается пароль (например, "1С Бухгалтерия").
Скопируйте сгенерированный пароль. Это будет длинная строка из 16 символов. Важно: этот пароль отображается только один раз, поэтому сразу же скопируйте его и вставьте в настройки 1С вместо вашего основного пароля.
Кроме того, на некоторых почтовых серверах может потребоваться дополнительно разрешить доступ для "менее защищенных приложений" или отдельно включить доступ по протоколам POP3/IMAP.
Если предыдущие способы не помогли или кажутся слишком сложными, существует надежный обходной путь — программа stunnel. Это бесплатная утилита, которая создает на вашем компьютере локальный зашифрованный туннель к почтовому серверу.
Проанализируем, как это работает: 1С будет подключаться к локальному адресу (127.0.0.1) без шифрования, а stunnel уже будет "заворачивать" этот трафик в SSL/TLS и отправлять на реальный почтовый сервер. Таким образом, мы полностью снимаем задачу шифрования с компоненты 1С.
Рассмотрим по шагам настройку:
Установите stunnel на компьютер, где работает 1С.
Настройте конфигурационный файл stunnel.conf. Вам нужно будет создать секции для POP3 и SMTP серверов. Посмотрим на пример для Яндекс.Почты:
; Включаем логирование для отладки
debug = 7
output = stunnel.log
; Глобальные опции
client = yes
; Секция для получения почты (POP3)
[yandex_pop3]
accept = 127.0.0.1:110 ; Локальный порт, к которому будет подключаться 1С
connect = pop.yandex.ru:995 ; Реальный адрес и порт сервера
; Секция для отправки почты (SMTP)
[yandex_smtp]
accept = 127.0.0.1:25 ; Локальный порт для отправки
connect = smtp.yandex.ru:465 ; Реальный адрес и порт сервера
Запустите stunnel. Он должен работать как служба или фоновое приложение.
Измените настройки в 1С. Теперь в коде 1С нужно указывать локальные адреса и порты, а опции SSL — отключить.
// Создаем объект
Почта = СоздатьОбъект("AddIn.DialMail");
// Сервером теперь является наш локальный компьютер
Почта.СерверPOP3 = "127.0.0.1";
Почта.ПортPOP3 = 110; // Порт, который слушает stunnel
Почта.СерверSMTP = "127.0.0.1";
Почта.ПортSMTP = 25; // Порт для SMTP из настроек stunnel
// SSL отключаем, так как шифрованием занимается stunnel!
Почта.ИспользоватьSSL_POP3 = 0;
Почта.ИспользоватьSSL_SMTP = 0;
// Логин и пароль приложения остаются прежними
Почта.Пользователь = "ВашЛогин";
Почта.Пароль = "ПарольПриложения";
Почта.АутентификацияSMTP = 1;
Этот метод является самым надежным и не зависит от версий библиотек OpenSSL или возможностей конкретной внешней компоненты (его можно использовать и с ROM-Mail, и с другими).