Имя: Пароль:
1C
 
Outlook MAPI 1c
,
0 Linker12
 
naïve
20.03.24
09:23
Всем привет. Буду признателен, за любую помощь.
При получении входящих сообщений из почты по MAPI из Outlook, все работает. Но автоматом, новые сообщения с сервера не подгружаются.
Приходится заходить в оутлук, письма прилетают. Потом получать их из папки "Входящие" в 1с по MAPI.

Может есть метод, который позволяет получать входящие с сервера по MAPI.

Спасибо
1 eklmn
 
гуру
20.03.24
09:36
ты хоть покажи как сделано сейчас
телепаты еще спят...
2 arsik
 
гуру
20.03.24
09:38
А накуя через аутлук? А напрямую? В штатные конфигурации все встроено. Хош pop3, хош imap.
3 Волшебник
 
20.03.24
09:42
(2) Наверное, путают MAPI и IMAP

wiki:MAPI
wiki:IMAP
4 eklmn
 
гуру
20.03.24
09:44
(2) погоди, не спугни!
там очень много вопросов, даже интересно что он там навелосипедил!
5 arsik
 
гуру
20.03.24
09:56
(3) Да не. Все правильно у него. Только он зачем то полез с почтой работать через объект 1с "Почта" - наследие из 77
Вместо этого нужно было использовать "ИнтернетПочта"
6 Linker12
 
naïve
20.03.24
10:16
(5) Объясню, отчего выбор пал на аутлук.
В ИнтернетПочта - нет возможности получать отчеты о доставке и прочтении.
Методы есть, но они не работают. Пришлось делать через COM
7 Linker12
 
naïve
20.03.24
10:18
(1)с удовольствием, только скажите, что именно. Там кода с полкилометра.
Проблемное место, в сухом остатке, выглядит так:

Оутлук = Новый COMОбъект("Outlook.Application");
ПространствоИмен = Оутлук.GetNamespace("MAPI");
Для Каждого Аккаунт Из ПространствоИмен.Stores Цикл
        Если Аккаунт.GetDefaultFolder(6).Store.DisplayName <> "почта@почта.org" Тогда
            Продолжить;
        Иначе
            КоллекцияВходящие = Аккаунт.GetDefaultFolder(6).Items; //Получили папку входящих сообщений
        КонецЕсли;
    КонецЦикла;
8 Linker12
 
naïve
20.03.24
10:19
(3) именно по MAPI, не путаю
9 Linker12
 
naïve
20.03.24
10:20
(2) конфа самописная
10 Linker12
 
naïve
20.03.24
10:22
вот и выходит, что папку то я проверяю с входящими. Только вот туда ничего не упадет, пока не запущу оутлук руками.
как временный костыль для тестов, сделал так:

    ЗапуститьПриложение("C:\Program Files\Microsoft Office\Office14\OUTLOOK.EXE");    
            Таймер = Обработки.Таймер.Создать();
            Таймер.Секунд = 60;
            Таймер.Надпись = "Получаем письма с сервера";
            Таймер.ПолучитьФорму().ОткрытьМодально();

Но, это плохой вариант
11 arsik
 
гуру
20.03.24
10:48
(6) Почему это нет? "отчеты о доставке и прочтении" - это отдельные входящие письма. Заголовки можно нормально прочитать и понять, что это отчет о прочтении и какого письма.
Отлук сейчас это за тебя делает и ставит флаг в основном письме "Доставлено" и "Прочитано". Но можно реализовать этот механизм и самому внутри 1С.
12 eklmn
 
гуру
20.03.24
11:05
иначе
    инбокс = Аккаунт.GetDefaultFolder(6)
    инбокс.InAppFolderSyncObject = True
    КоллекцияВходящие = инбокс.items
конецесли

попробуй, может поможет))

или еще это потереби ПространствоИмен.SyncObjects
13 Linker12
 
naïve
20.03.24
11:51
(11) Заголовки то можно читать, это правда. Но в 1с на этапе отправки письма проблема с выставлением параметров "отчет о доставке" и "отчет о прочтении".
Ни разу не сработали. Письмо улетает с параметром по умолчанию на false.
14 Linker12
 
naïve
20.03.24
12:49
(12) Золотой ты человек!
первый вариант сработал.
Спасибо!
15 arsik
 
гуру
20.03.24
12:08
(13) Если ты используешь УведомитьОПрочтении и УведомитьОДоставке, тогда нужно еще заполнить АдресаУведомленияОПрочтении.
16 Linker12
 
naïve
20.03.24
12:35
(15) да, заполнял. и тем адресом с которого отправлял и другим.
Даже адреса ставил с разными доменами. Яндекс, Майл, наш конторский.
Не отрабатывает и все тут. Думал версия платформы с косяком.

А интернет говорит, что ни на какой версии не могут методом воспользоваться корректно люди
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший