При настройке системной учетной записи электронной почты или разработке собственных обработок отправки сообщений разработчики нередко сталкиваются с ситуацией, когда на одной рабочей машине или в одной информационной базе отправка почты работает штатно, а в другой возвращается ошибка: Ошибка при вызове метода контекста (Подключиться): Can't connect to smtp.mail.ru,465: Refused. Проанализируем природу этой ошибки, выясним, почему корпоративный прокси-сервер влияет на почтовые протоколы, и разберем способы решения проблемы.
Для понимания причин сбоя рассмотрим особенности реализации сетевых механизмов платформы «1С:Предприятие». При взаимодействии с веб-сервисами через объект HTTPСоединение разработчик может явно задать параметры прокси с помощью объекта ИнтернетПрокси. Однако при работе с электронной почтой через объекты ИнтернетПочта и ИнтернетПочтовыйПрофиль механизм проксирования отсутствует.
Платформа 1С пытается установить прямое TCP-соединение с почтовым сервером по указанному адресу и порту (в случае Mail.ru — хост smtp.mail.ru, защищенный порт 465 с использованием SSL/TLS). Если в локальной сети компании выход в интернет строго ограничен и осуществляется исключительно через HTTP/HTTPS-прокси без возможности прямого сетевого взаимодействия (NAT), операционная система или шлюз отклоняет попытку подключения пакетом TCP RST. В результате метод Подключиться() завершается с ошибкой Connection Refused.
Кроме того, важно учитывать контекст выполнения кода. Если проверка подключения или отправка выполняется на стороне сервера (в серверном вызове &НаСервере или через регламентное задание), запрос инициируется службой сервера «1С:Предприятия». Сетевые политики, доступные порты и шлюзы по умолчанию на сервере приложений могут существенно отличаться от настроек на локальной машине пользователя.
Самое прямое и эффективное решение проблемы, подтвержденное на практике, — исключение почтового трафика из ограничений прокси-сервера. Разберем по шагам, какие действия необходимо предпринять:
465 (SSL) или 587 (STARTTLS) к адресам почтового сервиса. Для получения входящей почты по IMAP требуется порт 993.Test-NetConnection smtp.mail.ru -Port 465.После предоставления прямого сетевого доступа проверим корректность заполнения свойств объекта ИнтернетПочтовыйПрофиль. Современные почтовые провайдеры (включая Mail.ru, Яндекс, Gmail) требуют обязательного использования шифрования и специальных паролей приложений.
Рассмотрим пример создания и инициализации почтового профиля для протокола SMTP:
Профиль = Новый ИнтернетПочтовыйПрофиль;
Профиль.АдресСервераSMTP = "smtp.mail.ru";
Профиль.ПортSMTP = 465;
Профиль.ПользовательSMTP = "user@mail.ru";
// Внимание: используется пароль для внешних приложений, а не основной пароль от ящика
Профиль.ПарольSMTP = "секретный_пароль_приложения";
Профиль.АутентификацияSMTP = СпособSMTPАутентификации.ПоУмолчанию;
Профиль.ИспользоватьSSLSMTP = Истина;
Профиль.Таймаут = 30;
Почта = Новый ИнтернетПочта;
Попытка
Почта.Подключиться(Профиль, ИнтернетПочтовыйПротокол.SMTP);
// Подключение прошло успешно, можно формировать и отправлять ИнтернетПочтовоеСообщение
Почта.Отключиться();
Исключение
ИнформироватьПользователя = ОписаниеОшибки();
ВызватьИсключение "Не удалось подключиться к почтовому серверу: " + ИнформироватьПользователя;
КонецПопытки;
Обратите внимание на свойство ИспользоватьSSLSMTP. Для порта 465 установка защищенного соединения является обязательной. Если версия используемой платформы 1С или операционной системы устарела, платформа может не поддерживать современные криптографические протоколы (TLS 1.2 и выше), что также приведет к сбросу соединения.
Если корпоративная политика безопасности категорически запрещает открытие прямых портов во внешнюю сеть, рассмотрим обходные инженерные решения:
25, а внутренний релей берет на себя централизованную отправку во внешнюю сеть по разрешенным защищенным каналам.HTTPСоединение. В этом случае объект ИнтернетПрокси позволяет передавать запросы через корпоративный прокси-сервер с авторизацией.Таким образом, ошибка Can't connect: Refused однозначно указывает на блокировку сетевого пакета до момента успешного рукопожатия с сервером. Настройка прозрачного проброса почтовых портов в обход корпоративного HTTP-прокси позволяет полностью устранить проблему в типовых и нетиповых конфигурациях 1С.