Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / MS Outlook. Найти письмо с определенным вложением и переместить его в папку MS Outlook. / 15 сообщений из 15, страница 1 из 1
02.02.2012, 08:51
    #37643232
qwerg
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MS Outlook. Найти письмо с определенным вложением и переместить его в папку MS Outlook.
Добрый день.
Вот задача "MS Outlook. Найти письмо с определенным вложением и переместить его в папку MS Outlook." Под "определенным вложением" здесь имеется ввиду файл, у которого имя начинается на "fgh" и имеется расширение "mdg". Процедуру перемещения искомого написать смогу, да и на форуме примеров полно. А вот как найти...?
______________

С Уважением. Qwerg.
...
Рейтинг: 0 / 0
02.02.2012, 11:16
    #37643459
Игорь Горбонос
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MS Outlook. Найти письмо с определенным вложением и переместить его в папку MS Outlook.
> Автор: qwerg
> А вот как найти...?

Если написать сможешь, тогда простой перебор сообщений в папке и анализ имени вложения тебе помогут :)

Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
02.02.2012, 11:40
    #37643508
qwerg
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MS Outlook. Найти письмо с определенным вложением и переместить его в папку MS Outlook.
Игорь Горбонос> Автор: qwerg
> А вот как найти...?

Если написать сможешь, тогда простой перебор сообщений в папке и анализ имени вложения тебе помогут :)


Алгоритм я понимаю, мне бы кусочек кода по примеру.
...
Рейтинг: 0 / 0
02.02.2012, 17:51
    #37644534
Игорь Горбонос
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MS Outlook. Найти письмо с определенным вложением и переместить его в папку MS Outlook.
> Автор: qwerg
> Алгоритм я понимаю, мне бы кусочек кода по примеру.

Тут я тебе не помошник, поищи сам пример кода, например вот

Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
02.02.2012, 20:44
    #37644796
MS Outlook. Найти письмо с определенным вложением и переместить его в папку MS Outlook.
вот пример как перебирать письма
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
Sub getattachments()
Dim mail As MailItem
Set myNamespace = Application.GetNamespace("MAPI")
Set myfolder = myNamespace.GetDefaultFolder(olFolderInbox)
For Each mail In myfolder.Items
    MsgBox mail.Subject
Next
End Sub


разбирайся со свойством attachments
...
Рейтинг: 0 / 0
02.02.2012, 21:11
    #37644816
MS Outlook. Найти письмо с определенным вложением и переместить его в папку MS Outlook.
решил полностью написать

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
Sub getattachments()
Dim mail As MailItem
Dim mailat As Attachment
Set myNamespace = Application.GetNamespace("MAPI")
Set myfolder = myNamespace.GetDefaultFolder(olFolderInbox)
For Each mail In myfolder.Items
    If mail.Attachments.Count > 0 Then
        For Each mailat In mail.Attachments
            If Right(mailat.FileName, 3) = "mdg" And Left(mailat.FileName, 3) = "fgh" Then
                MsgBox "Мы нашли его!" 'тут пиши функцию, которая переместит вложение
        Next
    End If
Next
End Sub
...
Рейтинг: 0 / 0
03.02.2012, 06:57
    #37645096
qwerg
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MS Outlook. Найти письмо с определенным вложением и переместить его в папку MS Outlook.
Спасибо Всем!
когда то был отцом + 1 в карму! ;)
...
Рейтинг: 0 / 0
03.02.2012, 08:32
    #37645118
qwerg
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MS Outlook. Найти письмо с определенным вложением и переместить его в папку MS Outlook.
Написал вот как.
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
Sub InboxItemsMove (Item As Outlook.MailItem)
     Dim objNS As NameSpace
     Dim objInbox As MAPIFolder
     Dim objToFolder As MAPIFolder
     If objInbox.Items.Count > 0 Then
    For i = 1 To objInbox.Items.Count
        If objInbox.Items(i).Attachments.Count > 0 Then
             For j = 1 To objInbox.Items(i).Attachments.Count
                    If Right(objInbox.Items(i).Attachments.Item(j).DisplayName, 4) = ".arj" And Left(objInbox.Items(i).Attachments.Item(j).DisplayName, 3) = "160" Then
                        'On Error Resume Next
             Set objNS = Application.GetNamespace("MAPI")
             Set objInbox = objNS.GetDefaultFolder(olFolderInbox)
             Set objToFolder = objInbox.Folders("test")
             If Not objToFolder Is Nothing Then
                 Item.Move objToFolder
             End If
          End If
         Next j
      End If
    Next i
 End If
     Set objTestFolder = Nothing
     Set objInbox = Nothing
     Set objNS = Nothing
 End Sub


Ни ошибок, ни отработки скрипта. Писъма в папке Входящие присутсвуют.
Что не так в скрипте?
Выполнения вешаю на правило.
Само правило отрабатывает.
...
Рейтинг: 0 / 0
03.02.2012, 12:21
    #37645457
MS Outlook. Найти письмо с определенным вложением и переместить его в папку MS Outlook.
у тебя много лишнего кода написано, вот вариант с перемещением письма - работает отлично, тестировал у себя
попробуй, будет ли запускаться по правилу, если нет, надо будет обработчик события получения письма писать

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
Sub getattachments()
Dim mail As MailItem
Dim mailat As Attachment

Set myNamespace = Application.GetNamespace("MAPI")
Set objInbox = myNamespace.GetDefaultFolder(olFolderInbox)
Set objToFolder = objInbox.Folders("test")

For Each mail In objInbox.Items
    If mail.Attachments.Count > 0 Then
        For Each mailat In mail.Attachments
            If Right(mailat.FileName, 3) = "txt" And Left(mailat.FileName, 3) = "fgh" Then
                If Not objToFolder Is Nothing Then
                    mail.Move objToFolder
                End If
            End If
        Next
    End If
Next

End Sub
...
Рейтинг: 0 / 0
03.02.2012, 12:56
    #37645565
Игорь Горбонос
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MS Outlook. Найти письмо с определенным вложением и переместить его в папку MS Outlook.
> Автор: qwerg
> Написал вот как.

Ух и понаписал :)
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
Sub InboxItemsMove1(Item As Outlook.MailItem)
' Заготавливаем переменые для циклов
Dim mi As MailItem
Dim a As Attachment

Dim objNS As NameSpace
Dim objInbox As MAPIFolder
Dim objToFolder As MAPIFolder
' Получаем папку КУДА перемещать сразу и потом только используем её
Set objNS = Application.GetNamespace("MAPI")
Set objInbox = objNS.GetDefaultFolder(olFolderInbox)
Set objToFolder = objInbox.Folders("test")
' Проверяем, если есть папка-получатель, работаем
If Not objToFolder Is Nothing Then
' БегЁм по всем Итемам почты во входящей папке
    For Each mi In objInbox.Items
    ' Смотрим в Output'e темы сообщений, если интересно :)
        Debug.Print mi.Subject
    ' Здесь бегЁм по всем вложениям текущего почтового Итема
        For Each a In mi.Attachments
        ' Проверяем расширение и первые три символа имени вложения
            If Right(a.DisplayName, 4) = ".arj" And Left(a.DisplayName, 3) = "160" Then
                'On Error Resume Next
                ' И если мы прошли этот квест, тогда копируем сообщение с вложением в папку-получатель
                a.Copy objToFolder
            End If ' If Right(a.DisplayName, 4) = ".arj" And Left(a.DisplayName, 3) = "160" Then
        Next a ' For Each a In mi.Attachments
    Next mi ' For Each mi In objInbox.Items
End If ' If Not objToFolder Is Nothing Then

Set objToFolder = Nothing
Set objInbox = Nothing
Set objNS = Nothing
Set a = Nothing
Set mi = Nothing
End Sub



Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
03.02.2012, 13:56
    #37645749
qwerg
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MS Outlook. Найти письмо с определенным вложением и переместить его в папку MS Outlook.
когда то был отцом,
Спасибо, но сечас правило немного дольше отрабатывает, но результата так и нет. Создаю правило "при получении от %имя_отправителя%" выполнят макрос. Применяю правило на уже полученные письма, для теста - и ничего.
...
Рейтинг: 0 / 0
03.02.2012, 17:09
    #37646224
MS Outlook. Найти письмо с определенным вложением и переместить его в папку MS Outlook.
у меня 2010 аутлук... я не работал в аутлуке уже давно :)... даже не нашел, где эти правила настраиваются - там где написаны они должны быть на ленте, их нет... вынес на ленту, иконки почему-то не активные... попробуй вариант с обработчиком события получения письма:
Код: vbnet
1.
2.
3.
Private Sub Application_NewMail()
    Call getattachments
End Sub


добавь его в thisoutlooksession, как у меня на картинке
...
Рейтинг: 0 / 0
03.02.2012, 17:10
    #37646226
MS Outlook. Найти письмо с определенным вложением и переместить его в папку MS Outlook.
картинка
...
Рейтинг: 0 / 0
07.02.2012, 08:46
    #37649630
qwerg
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MS Outlook. Найти письмо с определенным вложением и переместить его в папку MS Outlook.
когда то был отцом,
в очередной раз спасибо. Весь код сюда и вставлял, в ThisOutlookSession. При запуске ругается на несоответсвие типов на последнем нексте.
...
Рейтинг: 0 / 0
08.02.2012, 07:43
    #37651120
qwerg
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MS Outlook. Найти письмо с определенным вложением и переместить его в папку MS Outlook.
когда то был отцом,
Все, заработало. Видимо во входящих есть письмо, которое каким то образом при операции перемещении ( отследил по брейкпоинтам) дает результат с несоответсвием типов. Т.к. убрал весь спам, оставил только деловую переписку - все замечательно работает, как Вы и говорили) ещё раз спасибо за помощь! Тему можно закрывать!



OffTop:Пора вводить на SQL.ru систему рейтинга.
...
Рейтинг: 0 / 0
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / MS Outlook. Найти письмо с определенным вложением и переместить его в папку MS Outlook. / 15 сообщений из 15, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]