|
Вопрос про IMAP и 1с81 | ☑ | ||
---|---|---|---|---|
0
MP-40
15.05.12
✎
13:22
|
Привет!
Подскажите, что-то не могу понять - 1с81 не умеет почту по IMAP принимать чтоли? Как работать с почтой вроде ясно, но вот как подключиться по этому протоколу непонятно. |
|||
1
Bober
15.05.12
✎
13:29
|
решение для 8.1
http://infostart.ru/public/58093/ в 8.2.14 появилась возможность работать с IMAP http://infostart.ru/public/85066/ |
|||
3
MP-40
15.05.12
✎
14:48
|
Спасибо.
|
|||
4
MP-40
15.05.12
✎
14:52
|
А нет ли у кого примера, как из 1С8 обращаться к MS Oulook и обрабатывать почту ?
|
|||
5
experimentator76
15.05.12
✎
14:59
|
(4) с этого надо начать
Application = Новый ComОбъект("OutLook.Application"); сам только отсылал а не читал |
|||
6
MP-40
15.05.12
✎
15:10
|
ха ха )))
|
|||
7
experimentator76
15.05.12
✎
15:40
|
(0)
например - в копилку знаний если нет ХХХ@ХХХ.ХХ - это учетка Попытка Application = Новый ComОбъект("OutLook.Application"); Исключение Предупреждение("Ошибка связи с OutLook !"); Возврат; КонецПопытки; Для Каждого Folders_ ИЗ Application.Session.Folders Цикл Если Folders_.Name = "ХХХ@ХХХ.ХХ" Тогда Для Каждого Folders2_ ИЗ Folders_.Folders Цикл Если Folders2_.Name = "Входящие" Тогда Для Каждого Folders3_ ИЗ Folders2_.Folders Цикл Если Folders3_.Name = "Тест" Тогда Если Folders3_.UnReadItemCount > 0 Тогда Для Каждого Item_ ИЗ Folders3_.Items Цикл Если Item_.UnRead Тогда Сообщить(Item_.Body); КонецЕсли КонецЦикла; КонецЕсли; Прервать; КОнецЕсли; КонецЦикла; Прервать; КОнецЕсли; КонецЦикла; Прервать; КОнецЕсли; КонецЦикла; |
|||
8
experimentator76
15.05.12
✎
15:43
|
аха только работает при запущенном аутлуке
надо еще копать |
|||
9
experimentator76
15.05.12
✎
15:49
|
а не нормально работает
|
|||
10
experimentator76
15.05.12
✎
15:50
|
это я письмо новое прочитал и проверка сработала
|
|||
11
MP-40
15.05.12
✎
16:04
|
Ага, работает... Но как-то неочень красиво.
|
|||
12
experimentator76
15.05.12
✎
16:06
|
(11) ну да на объеме придется перебирать письма
может можно как-то по другому непрочитанные получать есть вариант прочитанные перекладывать во вложенную папку чтоб не мешались |
|||
13
experimentator76
15.05.12
✎
16:07
|
неэстетично... зато надежно, удобно и практично ))
|
|||
14
MP-40
15.05.12
✎
16:11
|
Неочень-то и ненадежно, да и не практично помоему )))
|
|||
15
experimentator76
15.05.12
✎
16:12
|
(14) а где у тебя ломается ?
|
|||
16
MP-40
15.05.12
✎
16:13
|
Нигде не ломается, просто ненравится
|
|||
17
experimentator76
15.05.12
✎
16:14
|
(16) ну копай дальше тогда... поделись чего нароешь )
|
|||
18
MikhaDi4
15.05.12
✎
20:53
|
Вот тоже вроде по теме
Принимаем почту в 1С, без приблуд, приатаченные файлы сразу распаковываются и тащим письма из аутлука |
|||
19
experimentator76
15.05.12
✎
21:18
|
(18) спасибо
немного по другому но похоже все равно перебор писем происходит кроме того мой вариант позволяет работать с несколькими учетками и любыми нужными папками нужной вложенности |
|||
20
MikhaDi4
15.05.12
✎
21:38
|
Сейчас попробовал сделать так:
Для Каждого Folders_ ИЗ Application.Session.Folders Цикл Если Folders_.Name = "imap.yandex.ru" Тогда Для Каждого Folders2_ ИЗ Folders_.Folders Цикл Если Folders2_.Name = "Входящие" Тогда Для Й=1 по Folders2_.Items.Count Цикл ТекПисьмо=Folders2_.Items(Й); Если ТекПисьмо.UnRead Тогда Сообщить(ТекПисьмо.Subject); Если ТекПисьмо.Attachments.Count > 0 Тогда Для У=1 по ТекПисьмо.Attachments.Count Цикл Сообщить(ТекПисьмо.Attachments(У).FileName); Datetimes = СтрЗаменить(ТекПисьмо.ReceivedTime, " ", "_"); Datetimes = СтрЗаменить(Datetimes, ".", "_"); Datetimes = СтрЗаменить(Datetimes, ":", "_"); ТекПисьмо.Attachments(У).SaveAsFile("C:\mail\"+Datetimes+"_"+ТекПисьмо.Attachments(У).FileName); КонецЦикла; КонецЕсли; Попытка ТекПисьмо.UnRead=false; Исключение Сообщить(ОписаниеОшибки()); КонецПопытки; КонецЕсли КонецЦикла; КонецЕсли; КонецЦикла; КОнецЕсли; КонецЦикла; Но, при сбросе Unread выходит ошибка: {Форма.Форма(200)}: Ошибка при установке значения атрибута контекста (UnRead): Неизвестная ошибка При этом, письмо нормально помечается как прочтенное, но сам факт ошибки... Известно из-за чего она? |
|||
21
MikhaDi4
15.05.12
✎
21:41
|
(19) Помоему одно и тоже )))
|
|||
22
experimentator76
15.05.12
✎
21:53
|
(20) понимаю что должно работать и с Ложь
может = 0 ? |
|||
23
experimentator76
15.05.12
✎
21:55
|
(21) в приведенных примерах дефолтная папка для входящих получается сразу
но учеток может быть несколько со своими папками для "авто-чтения" |
|||
24
experimentator76
15.05.12
✎
21:58
|
(20) немного неоптимально
когда нашел нужную папку цикл дальше не имеет смысла и его желательно прервать желательно проверять в папке есть ли в ней ранее не прочитанные не перебирая в ней содержимое а вообще было бы неплохо после обработки письма переложить в папку для прочитанных |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |