Странная ошибка при отправке эл.почты из 1с
Какой то курьез. Есть база бухгалтерии ред.2 на платформе 8.3.
Пишу простую обработку отправки почты (тестировал) и при попытке отправить письмо получаю следующее:
Ошибка при вызове метода контекста (Послать): Сервис отключен с разрывом канала (SMTP error code 421 421 SMTP connection broken (reply))
Пишу такую же обработку под УТ11, на управляемой форме и аллилуя — все работает, код идентичный, платформа одна и та же, только в первом случае это толстый клиент обычное приложение, а во втором тонкий клиент управляемое приложение.
Вопрос как заставить работать под обычным приложением? Создалось ощущение что разные программные модули работают, и под одни ошибка, а под другим все ОК.
Вот для пример текст кода:
мПрофиль = Новый ИнтернетПочтовыйПрофиль;
мПрофиль.ПарольSMTP="пороль";
мПрофиль.АдресСервераSMTP="smtp.office365.com";
мПрофиль.ПортSMTP=587;
мПрофиль.ИспользоватьSSLSMTP=Ложь;
мПрофиль.ПользовательSMTP="АдресПочты@zupk.ru";
мПрофиль.ТолькоЗащищеннаяАутентификацияSMTP=Ложь;
мПрофиль.Таймаут=30;
Соединение = Новый ИнтернетПочта;
ПротоколПодключения=ПротоколИнтернетПочты.POP3;
Соединение.Подключиться(мПрофиль, ПротоколПодключения);
Письмо = Новый ИнтернетПочтовоеСообщение;
Письмо.Тема = ПараметрыПисьма.Тема;
Получатель = Письмо.Получатели.Добавить(АдресПочты);
Получатель.ОтображаемоеИмя = АдресПочты;
Письмо.ИмяОтправителя = "адрес@zupk.ru";
Письмо.Отправитель.ОтображаемоеИмя = "адрес@zupk.ru";
Письмо.Отправитель.Адрес = "адрес@zupk.ru";
Текст=Письмо.Тексты.Добавить("текст");
Текст.ТипТекста = ТипТекстаПочтовогоСообщения.ПростойТекст;
Письмо.Важность = ВажностьИнтернетПочтовогоСообщения.Обычная;
Письмо.Кодировка = "UTF-8";
Попытка
Соединение.Послать(Письмо,ОбрабатыватьТекстСообщения,ПротоколИнтернетПочты.SMTP);
Исключение
Сообщить(ОписаниеОшибки());
КонецПопытки;
Соединение.Отключиться();
Ошибки при отправке почты из 1С
В 1С есть возможность работать с электронной почтой напрямую из приложения: отправлять и принять письма через корпоративную почту.
- Отправка документов (договоров, счетов, актов и пр.) непосредственно из 1С на email клиента
- Рассылка отчетов из 1С по расписанию на почту руководителям подразделений
- Обмен данными 1С с разными системами
- Отправка заказов поставщику из 1С при дефиците определенных товаров
- и т.д.
На практике часто возникают ситуации, когда в какой-то момент (обычно в самый неподходящий :)) отправка писем из 1С или прием писем в 1С перестает работать.
- Клиент не получит вовремя счет на оплату — компания не получит деньги вовремя
Будем рассматривать типовой механизм отправки электронной почты из 1С: т.е. со стороны 1С идет подключение к pop3 или smtp-серверу одного из почтовых сервисов: yandex, google, mail.ru и пр.
Ошибка № 1. Аутентификация не прошла (SMTP error code 535 5.7.8 Username and Password not accepted)
- Неверно указан логин/пароль
Ошибка № 2. Сервис отключен с разрывом канала (SMTP error code 421 SMTP connection broken (reply))
Скриншот ошибки, которую вы можете встретить в 1С:
Возможная причина:IP-адрес сервера, с которого идет отправка сообщений (как правило — сервер 1С) попал в спам-базу.
Это означает, что почтовый сервис расценил письма, которые вы отправляете из 1С, как СПАМ, и они не будут доставлены получателю. Такая ситуация может возникнуть, если вы выполняете массовые email-рассылки из 1С большому количеству клиентов.
Что делать:
Шаг 1. Проверить наличие IP-адреса вашего сервера в СПАМ базах.
Один из удобных способов — воспользоваться сайтом 2ip: https://2ip.ru/spam/. Необходимо ввести IP-адрес и нажать на кнопку «Проверить». На выходе получите примерно такую таблицу:
Если во второй колонке увидели «LISTED», значит IP-адрес находится в СПАМ-базе.
Шаг 2. Вывести IP из спам базы
В зависимости от того в какой из спам листов попал ваш IP действия будут немного отличаться, но принцип один и тот же — нужно найти сайт этого спам-листа и отправить апелляцию. Рассмотрим, например, как вывести IP из спам листа BARRACUDA.
- Email Server IP Address — IP-адрес, который угодил в спам лист
- Email Address — личная почта. На эту почту придет ответ от Barracuda
- Phone Number — номер телефона для связи (звонить вряд ли будут, но указать нужно)
- Reason for Removal — тут надо написать (на английском) почему указанный IP-адрес должен быть удален из спам листа. Можно воспользоваться переводчиком и сформировать, например, такое оправдание: «Сотрудник не правильно пользовался сервером. Он наказан. Ситуацию исправили. Удалите, пожалуйста IP из спам листа»
Таким образом, в этой статье, мы рассмотрели некоторые ошибки, связанные с отправкой (получением) email из/в 1С, возможные причины и как устранить эти ошибки.
Если вам помогла эта статья, напишите об этом в комментариях. Также если вам не удалось решить ошибки, связанные с отправкой почты из 1С, опишите в комментариях проблему и текст ошибки. В этом случае мы постараемся вам помочь. К тому же это будет полезно другим и мы сможем дополнить текущую статью.
Сервис отключен с разрывом канала smtp error code 421 1с как исправить
Столкнулся с такой проблемой : процедура написана на 1С для отправки документов не всегда может отправить письма.
выдает ошибку 1с сервис отключен с разрывом канала (smtp error code 421).
Подскажите, как правильно настроить Exchange 2013 для отправки большого количества сообщений внутри сети что бы ок 5000 писем были отправлены и как вылечить эту ошибку. Возможно я чего то не учел в настройках почтового сервера?
Записки ИТ специалиста.
1с Ошибка «сервис отключен с разрывом канала (smtp error code 421)»
Настраивали программисты по 1С рассылку из 1С через корпоративный почтовый сервер MS Exchange 2016. При запуске обработки получили ошибку «сервис отключен с разрывом канала (smtp error code 421)»
Обратились к нам, системным администраторам. Мы со своей стороны настроили коннектор
/>
, параметры безопасности на картинке ниже
Задали нужные IP адреса, порт 25.
Попросили программистов еще раз запустить рассылку. Ошибка повторяется. 3-4 письма уходит и все, дальше ошибка. Исследуем проблему дальше. Поиск в интернете показал, что надо увеличить параметр MessageRatelimit у коннектора. Смотрим этот параметр
Get-ReceiveConnector mbx01\1C | fl name, MessageRatelimit
Где mbx01 имя сервера, 1С — имя коннектора
Получил ответ
Name : 1C
MessageRateLimit : Unlimited
Лимит неограничен.
Попросил со стороны 1С более подробные логи, сказали, что берите, что есть. Запустили Wireshark, тут выловили ошибку
/>
По ней было проще уже найти решение. Оно оказалось в следующем — необходимо увеличить дефолтный коннектор с именем «Client Proxy MBX01». Установил лимит 1200 соединений, было 5.
Set-ReceiveConnector «mbx01\Client Proxy MBX01» -MessageRatelimit 1200
Ниже код 1С для рассылки сообщений. Прислали программисты 1С, верю им на слово
Профиль = Новый ИнтернетПочтовыйПрофиль;
Профиль.АутентификацияSMTP = СпособSMTPАутентификации.Login;
Профиль.АдресСервераSMTP = фАдресSMTP; // определяется на форме
Профиль.ИспользоватьSSLSMTP = ложь;
Профиль.ПортSMTP = 25;
Профиль.ПарольSMTP = фПарольSMTP; // определяется на форме
Профиль.ПользовательSMTP = фЛогинSMTP; // определяется на форме
Профиль.ВремяОжидания = 350;почта = новый интернетпочта;
почта.Подключиться(Профиль);Сообщение = Новый интернетПочтовоеСообщение;
Сообщение.Отправитель = АдресОтправителя;
сообщение.Тема =»Тестовое сообщение через MS Exchange 2016″;
ИнтернетТекстПочтовогоСообщения = Сообщение.Тексты.Добавить();
ИнтернетТекстПочтовогоСообщения.Текст = ТекстПисьма;
сообщение.Получатели.Добавить(сокрлп(ТекСтрока.Почта));
почта.Послать(Сообщение);