Outlook: сохранение вложений на диске (с опред. условиями)

Программирование на Visual Basic for Applications
smaximum
Начинающий
Начинающий
 
Сообщения: 3
Зарегистрирован: 21.03.2006 (Вт) 9:33

Outlook: сохранение вложений на диске (с опред. условиями)

Сообщение smaximum » 21.03.2006 (Вт) 10:08

Проблема:
в Microsoft Outlook 2003 необходимо обрабатывать входящие письма, которые находятся в папке "тест" (путь Входящие\Работа\тест попадают сюда по заданному правилу от определенных адресатов) и сохранять вложения на диск в папки в соответствии с датой получения письма (папка на диске должна быть например формата ГГГГ.ММ.ДД, например D:\Работа\2006.03.21). Тип вложений в принципе не важен, но для примера можно поставить условие на расширение "xls".
Пользовался сторонней разработкой - надстройкой от MAPILab "Attachments Processor for Outlook 3.2". Полностью решает указанную проблему, но к сожалению, демо-версия работает только 30 дней.
Подскажите, пожалуйста, код или хотя бы какие-то ключевые моменты, т.к. нет времени разбираться с объектной моделью в Outlook.

RayShade
Scarmarked
Scarmarked
Аватара пользователя
 
Сообщения: 5511
Зарегистрирован: 02.12.2002 (Пн) 17:11
Откуда: Russia, Saint-Petersburg

Сообщение RayShade » 21.03.2006 (Вт) 10:44

Поищи по форуму со словами mailitem и outlook.

Тут, такие темы обсуждали.

smaximum
Начинающий
Начинающий
 
Сообщения: 3
Зарегистрирован: 21.03.2006 (Вт) 9:33

Сообщение smaximum » 21.03.2006 (Вт) 11:05

Поискал на форумах, нашел тему с сохранением полностью сообщений *.msg на диске. А с сохранением именно вложений не нашел.

RayShade
Scarmarked
Scarmarked
Аватара пользователя
 
Сообщения: 5511
Зарегистрирован: 02.12.2002 (Пн) 17:11
Откуда: Russia, Saint-Petersburg

Сообщение RayShade » 21.03.2006 (Вт) 11:44

Само сообщение - это outlook.mailitem

Атачи в них - это .attachments



Список сообщений в определенной папке получается примерно так:

Outlook.Application.Session.Folders.Item("Inbox").Items



Ну дальше я думаю, разберешься?

smaximum
Начинающий
Начинающий
 
Сообщения: 3
Зарегистрирован: 21.03.2006 (Вт) 9:33

Сообщение smaximum » 21.03.2006 (Вт) 14:00

А как вытащить дату получения письма?
Т.к. в соответствии с этой датой должна определяется папка для сохранения.

RayShade
Scarmarked
Scarmarked
Аватара пользователя
 
Сообщения: 5511
Зарегистрирован: 02.12.2002 (Пн) 17:11
Откуда: Russia, Saint-Petersburg

Сообщение RayShade » 21.03.2006 (Вт) 14:05

У mailitem есть проперть .creationtime

RaL
Начинающий
Начинающий
 
Сообщения: 5
Зарегистрирован: 25.03.2006 (Сб) 23:21

Сообщение RaL » 25.03.2006 (Сб) 23:40

Само сообщение - это outlook.mailitem
Атачи в них - это .attachments

Список сообщений в определенной папке получается примерно так:
Outlook.Application.Session.Folders.Item("Inbox").Items

Ну дальше я думаю, разберешься?



Эх, а я не понял.

У меня недавно появилась потребность в программе, извлекающей аттачи из всех сообщений outlook и отображающей список этих файлов, при клике на одном из них - должно происходить открытие соответствующего файла.

Сегодня полистал книгу по VBA и написал макрос для outlook, который при запуске отображает форму с ЛистБоксом и выводит в неё список названий (FileName) всех аттачей (реализация - происходит перебор всех папок, в них перебор всех писем, в них перебор аттачей).

Но так и не понял, с помощью чего мне открывать эти аттачи???
Программной конструкции я не нашел, а реализовать аналог не могу, так как все сообщения outlook хранятся в едином файле и вытащить что-либо из них - не знаю как!

Подскажите, как открыть вложение к письму? Может быть, что-то вроде Exec(FileName)?

А также очень интересно, как можно вытащить макрос в отдельный файл? (чтобы его можно было в дальнейшем запускать на компах других пользователей)

И если не лень, как программно добавить кнопку, связанную с макросом, на панель инстументов outlook ?

RaL
Начинающий
Начинающий
 
Сообщения: 5
Зарегистрирован: 25.03.2006 (Сб) 23:21

Сообщение RaL » 26.03.2006 (Вс) 10:06

кнопочку добавить узнал как, остальный вопросы в силе :)

RaL
Начинающий
Начинающий
 
Сообщения: 5
Зарегистрирован: 25.03.2006 (Сб) 23:21

Сообщение RaL » 26.03.2006 (Вс) 12:57

Ладно-ладно, открыть аттач я приноровился, сохранив его в папку temp и потом запустив на выполнение...

Итого остался последний вопрос, шо делать с макросами, как их переносить с одного компа на другой?

Есть ли что-нибудь попроще, чем экспорт всех файлов, а потом вручную импорт?
Можно как-нибудь это автоматизировать?


Вернуться в VBA

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 19

    TopList  
cron