Настраивали программисты по 1С рассылку из 1С через корпоративный почтовый сервер MS Exchange 2016. При запуске обработки получили ошибку «сервис отключен с разрывом канала (smtp error code 421)»
Обратились к нам, системным администраторам. Мы со своей стороны настроили коннектор
, параметры безопасности на картинке ниже
Задали нужные IP адреса, порт 25.
Попросили программистов еще раз запустить рассылку. Ошибка повторяется. 3-4 письма уходит и все, дальше ошибка. Исследуем проблему дальше. Поиск в интернете показал, что надо увеличить параметр MessageRatelimit у коннектора. Смотрим этот параметр
Get-ReceiveConnector mbx011C | fl name, MessageRatelimit
Где mbx01 имя сервера, 1С — имя коннектора
Получил ответ
Name : 1C
MessageRateLimit : Unlimited
Лимит неограничен.
Попросил со стороны 1С более подробные логи, сказали, что берите, что есть. Запустили Wireshark, тут выловили ошибку
По ней было проще уже найти решение. Оно оказалось в следующем — необходимо увеличить дефолтный коннектор с именем «Client Proxy MBX01». Установил лимит 1200 соединений, было 5.
Set-ReceiveConnector «mbx01Client Proxy MBX01» -MessageRatelimit 1200
Ниже код 1С для рассылки сообщений. Прислали программисты 1С, верю им на слово
Профиль = Новый ИнтернетПочтовыйПрофиль;
Профиль.АутентификацияSMTP = СпособSMTPАутентификации.Login;
Профиль.АдресСервераSMTP = фАдресSMTP; // определяется на форме
Профиль.ИспользоватьSSLSMTP = ложь;
Профиль.ПортSMTP = 25;
Профиль.ПарольSMTP = фПарольSMTP; // определяется на форме
Профиль.ПользовательSMTP = фЛогинSMTP; // определяется на форме
Профиль.ВремяОжидания = 350;почта = новый интернетпочта;
почта.Подключиться(Профиль);Сообщение = Новый интернетПочтовоеСообщение;
Сообщение.Отправитель = АдресОтправителя;
сообщение.Тема =»Тестовое сообщение через MS Exchange 2016″;
ИнтернетТекстПочтовогоСообщения = Сообщение.Тексты.Добавить();
ИнтернетТекстПочтовогоСообщения.Текст = ТекстПисьма;
сообщение.Получатели.Добавить(сокрлп(ТекСтрока.Почта));
почта.Послать(Сообщение);
Применений этому механизму можно найти достаточно много, например:
- Отправка документов (договоров, счетов, актов и пр.) непосредственно из 1С на email клиента
- Рассылка отчетов из 1С по расписанию на почту руководителям подразделений
- Обмен данными 1С с разными системами
- Отправка заказов поставщику из 1С при дефиците определенных товаров
- и т.д.
Поскольку работа с почтой из 1С используется в важных бизнес-процессах компании, то необходимо обеспечить стабильную работу этого механизма: письма должны отправляться и приниматься стабильно и без ошибок.
На практике часто возникают ситуации, когда в какой-то момент (обычно в самый неподходящий :)) отправка писем из 1С или прием писем в 1С перестает работать.
В результате последствия могут самыми разными:
- Клиент не получит вовремя счет на оплату — компания не получит деньги вовремя
Руководитель не получит ежедневный отчет о продажах из 1С — не сможет принять правильные решения (в отдельных случаях может уволить ответственного за рассылку:))
Обмен данными в 1С не выполнится вовремя, в результате чего объем данных, который нужно будет выгрузить при следующем обмене будет увеличиваться, что может привести к проблемам производительности и блокировкам при следующем обмене
В этой статье мы поговорим о том, на что нужно обратить внимание в первую очередь, если отправка/получение email из/в 1С перестал(а) работать. При этом в статье приведены лишь некоторые из возможных ошибок, причина которых неочевидна. В дальнейшем статья будет дополняться другими ошибками, чтобы вы смогли использовать её как инструкцию по решению проблем с отправкой (получением) почты из (в) 1С.
Будем рассматривать типовой механизм отправки электронной почты из 1С: т.е. со стороны 1С идет подключение к pop3 или smtp-серверу одного из почтовых сервисов: yandex, google, mail.ru и пр.
Ошибка № 1. Аутентификация не прошла (SMTP error code 535 5.7.8 Username and Password not accepted)
Скриншот ошибки, которую вы можете встретить в 1С:
Возможные причины:
- Неверно указан логин/пароль
Часто бывает так что на стороне аккаунта в yandex/google изменили пароль, а в 1С применить изменения забылиЧто делать:
проверить учетные данные (логин/пароль), под которыми выполняется подключение из 1С к smtp-серверу и обновить их.
В настройках безопасности аккаунта закрыт доступ для «ненадежных» приложений
Если вы используете для работы с почтой аккаунт в почтовом сервисе google, то на уровне настроек аккаунта может быть закрыт доступ к аккаунту для «ненадежных» по мнению google приложений. К таким приложениям, к сожалению, google может отнести 1С 🙂
Что делать:
Заходим в настройки безопасности аккаунта google: https://myaccount.google.com/security Открываем доступ к аккаунту для ненадежных приложений:
Ошибка № 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.
Заходим на сайт BARRACUDA, форма для отправки апелляции находится тут:
http://www.barracudacentral.org/rbl/removal-request
Указываем в этой форме:
- Email Server IP Address — IP-адрес, который угодил в спам лист
- Email Address — личная почта. На эту почту придет ответ от Barracuda
- Phone Number — номер телефона для связи (звонить вряд ли будут, но указать нужно)
- Reason for Removal — тут надо написать (на английском) почему указанный IP-адрес должен быть удален из спам листа. Можно воспользоваться переводчиком и сформировать, например, такое оправдание: «Сотрудник не правильно пользовался сервером. Он наказан. Ситуацию исправили. Удалите, пожалуйста IP из спам листа»
После этого нажимаем «Submit request» и ждем ответа. На указанный в форме email должно прийти уведомление, которое начинается примерно с таких слов:
Через несколько часов IP-адрес будет удален из спам-листа. Чтобы проверить это снова заходим на 2ip и проверяем (см. Шаг 1).
Шаг 3. Проверить отправку почты из 1С
Если сделали все правильно — отправка должна выполняться без ошибок.
Таким образом, в этой статье, мы рассмотрели некоторые ошибки, связанные с отправкой (получением) email из/в 1С, возможные причины и как устранить эти ошибки.
Если вам помогла эта статья, напишите об этом в комментариях. Также если вам не удалось решить ошибки, связанные с отправкой почты из 1С, опишите в комментариях проблему и текст ошибки. В этом случае мы постараемся вам помочь. К тому же это будет полезно другим и мы сможем дополнить текущую статью.
- Remove From My Forums
-
Вопрос
-
День добрый!
Столкнулся с такой проблемой : процедура написана на 1С для отправки документов не всегда может отправить письма.
выдает ошибку 1с сервис отключен с разрывом канала (smtp error code 421).
Подскажите, как правильно настроить Exchange 2013 для отправки большого количества сообщений внутри сети что бы ок 5000 писем были отправлены и как вылечить эту ошибку. Возможно я чего то не учел в настройках почтового сервера?
Заранее спасибо.
Ответы
-
Просто не надо все 5000 писем отправлять враз. Тут любой сервер психанет. Делайте задержку между отправкой писем таким образом, чтобы вся эта очередь рассасывалась за пару часов. Можете конечно лимиты на эксче убрать,
но лично мне это кажется сомнительной затеей:Get-ReceiveConnector | Set-ReceiveConnector -MessageRateLimit Unlimited
-
Изменено
20 октября 2016 г. 8:31
-
Предложено в качестве ответа
Vector BCO
20 октября 2016 г. 8:49 -
Помечено в качестве ответа
Vasilev VasilMicrosoft contingent staff
28 октября 2016 г. 6:52
-
Изменено
-
лимитов чуть побольше:
https://technet.microsoft.com/en-us/library/bb310760%28v=exchg.141%29.aspx
поэтому лучше для пользователя убрать ограничение, либо для коннектора который с 1с принимает, а не со всех.
scientia potentia est
My blog-
Помечено в качестве ответа
Vasilev VasilMicrosoft contingent staff
28 октября 2016 г. 6:52
-
Помечено в качестве ответа
Ошибка 421 возникает по нескольким причинам. Каждая из ошибок не является фатальной и её легко исправить. В этой статье мы отметим 2 самые распространенные причины, по которым возникает error 421 и решение проблемы.
Чаще всего причины этой ошибки заключаются в следующем:
- Нет соединения с smtp сервером почтового хостинга. В комментариях к ошибке может писать прервано или отсутствует по неизвестной причине;
- FTP сервер занят или перегружен – причина в превышении количества разрешенных подключений;
- Грейлистинг – отсутствие ip-адреса в списке (белом) RCPT, почта с ip-адреса временно не принимается по причине подозрения в рассылке спама.
Причина номер 1: отсутствует соединение с SMPT-сервером
Ошибка 421 (SMTP-сервер) возникает, когда нет подключения к SMPT-серверу. В результате сбоя вы не можете обновлять списки писем или отправить новое письмо. Сбой часто возникает при работе с почтовыми клиентами, например, Outlook.
Причины ошибки и решения:
- Блокировка соединения антивирусом. Решается просто: отключаем на 5 минут антивирус и пробуем перезайти в программу. Обращаем внимание, что почтовый клиент нужно закрыть вообще, а затем снова открыть.
- VPN сервис. Особенно, если вы используете бесплатные варианты. Часто IP адреса таких сервисом занесены в бан. Поэтому, как бы вы ни старались, подключиться с их помощью не выйдет.
- Сбой работы почтового клиента. Нужно снова настроить клиент с нуля. К примеру, можно удалить и заново установить программу.
Причина номер 2: множественные подключения
Ошибка 421 (Too Many Connections) – это ошибка FTP соединения, которая не беспокоит обычных пользователей и чаще всего является информационным сигналом для вебмастера. Ошибка появляется при работе с программой FileZilla и для ее исправления нужно внести некоторые изменения в настройки. Также, иногда может потребоваться доступ к панели управления хостингом.
Возникает в случае, если у вас открыто активное соединение с сервером и вы параллельно пытаетесь создать еще одно подключение по тому же адресу. По сути ничего страшного в этом нет. Если с вашего IP уже есть соединение вы просто получите ошибку 421. На сам сайт это никак не влияет.
Как исправить ошибку 421?
- Нужно ограничить количество одновременных подключение к серверу, чтобы избежать появление ошибки 421. Для этого заходим в программу-клиент FileZilla и нажимаем «Файл», затем открываем «Менеджер сайтов».
- Если у вас несколько сайтов, нужно выбрать тот, который выдаёт ошибку 421. Вы увидите вкладку «Настройки передачи», в которой нужно установить Макс. Число подключений максимально до 8-ми. Более точную информацию можно узнать у хостинг-партнера. Однако, изменяя данный параметр с единицы до большего числа есть риск, что к серверу будут подключаться взломщики и вы об этом не узнаете.
- Далее сохраняем и перезапускаем программу.
ВАЖНО: Если это не помогло – срочно смените пароль для FTP и имя пользователя. Вполне возможно, что доступ к FTP аккаунту получен посторонними людьми.
Альтернативный способ исправить ошибку 421
Заходим в административную панель хостинг-аккаунта. Переходим в раздел управления FTP и отключаем активные подключения. Затем можем снова устанавливать соединение через FTP-клиент.
Если нет функции снять все активные соединения, просто смените логин и пароль для FTP аккаунта. Активные соединения будут сброшены автоматически.
Другой способ, который срабатывает, если у вас открыты программы, но нет возможности найти то самое соединение. Просто перезагрузите свой компьютер. При повторном запуске будет сделано соединение заново. Однако, этот способ не сработает, если неправильно настроен FTP-клиент.
Причина номер 3: Грейлистинг
Как правило, MS Outlook используется корпоративными клиентами в офисах для упорядочивания переписки и ускорения отправки коммерческой корреспонденции. Поэтому исходящий трафик может быть довольно высок. Именно по этой причине многие программы могут ввести ip-адрес, с которого ведется рассылка в серые списки (грейлистинг).
Причиной внесения ip-адреса пользователя в серый список может стать слишком активная переписка через один из бесплатных smtp серверов: Mail.ru, Яндекс или Gmail. Которые лимитируют количество отправленных писем в сутки. При необходимости сохранения прежней интенсивности переписки данная проблема решается переходом на специализированные почтовые сервисы. К примеру, SendPulse SMTP Server.
Дальше по теме…
Вот для пример текст кода:
мПрофиль = Новый ИнтернетПочтовыйПрофиль;
мПрофиль.ПарольSMTP=”пороль”;
мПрофиль.АдресСервераSMTP=”smtp.office365.com”;
мПрофиль.ПортSMTP=587;
мПрофиль.ИспользоватьSSLSMTP=Ложь;
мПрофиль.ПользовательSMTP=”АдресПочты@zupk.ru”;
мПрофиль.ТолькоЗащищеннаяАутентификацияSMTP=Ложь;
мПрофиль.Таймаут=30;
Соединение = Новый ИнтернетПочта;
ПротоколПодключения=ПротоколИнтернетПочты.POP3;
Соединение.Подключиться(мПрофиль, ПротоколПодключения);
Письмо = Новый ИнтернетПочтовоеСообщение;
Письмо.Тема = ПараметрыПисьма.Тема;
Получатель = Письмо.Получатели.Добавить(АдресПочты);
Получатель.ОтображаемоеИмя = АдресПочты;
Письмо.ИмяОтправителя = “адрес@zupk.ru”;
Письмо.Отправитель.ОтображаемоеИмя = “адрес@zupk.ru”;
Письмо.Отправитель.Адрес = “адрес@zupk.ru”;
Текст=Письмо.Тексты.Добавить(“текст”);
Текст.ТипТекста = ТипТекстаПочтовогоСообщения.ПростойТекст;
Письмо.Важность = ВажностьИнтернетПочтовогоСообщения.Обычная;
Письмо.Кодировка = “UTF-8”;
ОбрабатыватьТекстСообщения = ОбработкаТекстаИнтернетПочтовогоСообщения.НеОбрабатывать;
Попытка
Соединение.Послать(Письмо,ОбрабатыватьТекстСообщения,ПротоколИнтернетПочты.SMTP);
Исключение
Сообщить(ОписаниеОшибки());
КонецПопытки;
Соединение.Отключиться();