Имя: Пароль:
1C
 
Подписки на папки электронной почты при использовании протокола IMAP
,
0 Dance4Life
 
20.11.24
11:32
Конфигурация ERP 2.5.12.222, платформа 8.3.25.1394.

Есть почтовый сервер на базе Microsoft Exchange. В ERP имеется общедоступный почтовый ящик, на который внезапно перестали поступать входящие.

Отладка показала, что типовой код при получении писем с проблемного ящика заходит в Почта.ПолучитьПочтовыеЯщикиПоПодписке() и получает 4 папки: Отправленные, Исходящие, Черновики и Нежелательные. Т.е. все папки, кроме Входящие, и соответственно письма из входящих не забирает. Т.к. количество папок по подписке не равно 0, то код не заходит в расположенный следом метод Почта.ПолучитьПочтовыеЯщики(), который получает все папки писем независимо от подписок.

Вопрос: откуда 1С получает инфу о подписках на папки? По идее это клиентская функция, то есть каждый пользователь ящика в любом почтовом клиенте (1С, аутлук, пр.) может настроить подписки как ему удобно.

В аутлуке письма на этот ящик исправно приходят.
1 Garykom
 
гуру
20.11.24
11:42
Из выполнения команды протокола IMAP
wiki:IMAP
SUBSCRIBE
Добавляет почтовый ящик в список активных ящиков клиента. В этой команде используется только один параметр — имя почтового ящика, который нужно внести в список. Почтовый ящик не обязательно должен существовать, чтобы его можно было добавить в список активных ящиков — это позволяет добавлять в список активных ящиков ящики, которые ещё не созданы, или удалять их, если они пусты.
UNSUBSCRIBE
Удаляет почтовые ящики из списка активных. В ней так же используется один параметр — имя почтового ящика, который удаляется из списка активных ящиков клиента. При этом сам по себе почтовый ящик не удаляется.
LIST
Получить список всех почтовых ящиков клиента; имеет два параметра.
LSUB
В отличие от команды LIST используется для получения списка ящиков, активизированных командой SUBSCRIBE. Параметры — такие же, как у LIST.
2 Garykom
 
гуру
20.11.24
11:44
(0) Для почты-робота в 1С не надо использовать чужую или общую учетку
Делай отдельную учетку для почты 1С, чтобы только 1С ее использовала
И настраивай там подписки как надо, чтобы никто из юзеров не ползал
3 Garykom
 
гуру
20.11.24
11:46
(1)+ в 1С:
ПодписатьсяНаПочтовыйЯщик(<Имя>)
ОтменитьПодпискуНаПочтовыйЯщик(<Имя>)
ПолучитьПочтовыеЯщики()
ПолучитьПочтовыеЯщикиПоПодписке()
4 Dance4Life
 
20.11.24
11:58
(2) "И настраивай там подписки как надо, чтобы никто из юзеров не ползал" - а где это настраивается?

Глобальный поиск по ПодписатьсяНаПочтовыйЯщик ничего не нашел, то есть сама ERP ни на что не подписывается. Будет странно в типовом коде для одного ящика дописывать подписку на входящие.
5 Garykom
 
гуру
20.11.24
12:14
(4) просто показал соответствие процедур/функций в 1С и в протоколе IMAP
что там у тебя в коде и как подписаться/отписаться это не ко мне
решение предложил с отдельной учеткой, где никто не подпишется куда не надо
либо добавить одну строчку кода с принудительной подпиской на нужный ящик
или несколько
или получить список подписанных, проверить если ли нужные, подписаться запомнив
прогнать типовой код
а затем отписаться от запомненных, на которые подписывался
6 Смотрящий
 
20.11.24
12:34
(0) На почтовом сервере отключили доступ к папке по IMAP - вот ее 1С и не видит. Включите.
7 Dance4Life
 
20.11.24
13:08
(6) Админы божатся, что у exchange'a такого нет.

Сейчас выяснилось нечто странное. У меня проблемный ящик был добавлен в аутлук, чтобы мониторить письма и сравнивать с ERP. Зашел в "Папки IMAP" в аутлуке, нажал Запрос - получил все папки, подписки на Входящие не было. Включил подписку - полетели письма в ERP, а из аутлука наоборот - всё удалилось.

Лютая дичь.
8 Смотрящий
 
20.11.24
13:16
(7) "а из аутлука наоборот - всё удалилось" в ERPырище не установлена галка "оставлять письма на сервере". Или типа такой.
9 Dance4Life
 
20.11.24
13:19
(8) Есть такая, но она вроде касается только исходящих: https://skr.sh/sSnnjLAwpK9
10 Dance4Life
 
20.11.24
13:19
(9) По-моему про "оставлять копии писем на сервере" только для протокола POP3 актуально
11 Dance4Life
 
20.11.24
13:24
Почему именно от моей подписки на папку Входящие зависело получение писем в ERP, ведь этот ящик есть у десятка других юзеров в аутлуке...
Зачем ERP в принципе удаляет письма с сервера после получения...
12 Garykom
 
гуру
20.11.24
13:31
(10) нет, это актуально для всего
протоколы POP3/SMTP очень старые и простые
IMAP же позволяет намного больше манипуляций с письмами
т.е. все что может POP3 так же может IMAP и еще сверху
13 Смотрящий
 
20.11.24
13:40
Основное отличие имап от поп3 - то что для операций с письмами не требуется письмо выкачивать на локалку
Ошибка? Это не ошибка, это системная функция.