none
Помогите написать VisualBasic Script RRS feed

  • Вопрос

  • Коллеги, привет.

    Помогите написать VBS, т.к. я в нем не силен абсолютно.

    Задача: посчитать сколько всего места занимают письма с определенного адресата во всех ящиках

    1. Залезать через MAPI в каждый ящик

    2. Искать сообщения "от"

    3. Получать размер сообщений

    4. Проверять, сколько сообщений из найденных прочитано, сколько нет

    5. Записывать размер сообщений и количество прочитано\не прочитано в xls/csv

    Использовать для этого логичнее Redemption, методом создания папки поиска. Вот нашел код для логина и создания папки


    Function ggg()

    RES_CONTENT = 3
    FL_SUBSTRING = 1

    FL_IGNORECASE = &H10000
    PR_ORIGINAL_SENDER_EMAIL_ADDRESS = &H67001E
    Set SessionR = CreateObject("Redemption.RDOSession")
    'set objFolder = CreateObject("Redemption.RDOFolder")
    'set oItem = CreateObject("Redemption.RDOMail")

    SessionR.LogonExchangeMailbox "email@domain.ru", "servername"

    'create new search folder
    'Session.Logon

    Set DefaultStore = SessionR.Stores.DefaultStore
    Set SearchRootFolder = DefaultStore.SearchRootFolder
    Set newsearchfolder = SearchRootFolder.Folders.AddSearchFolder("SEARCHX")
    'set the restriction to search for message with the word "test" in the subject line
    Set Restriction = newsearchfolder.SearchCriteria.SetKind(RES_CONTENT)
    Restriction.ulFuzzyLevel = FL_SUBSTRING Or FL_IGNORECASE
    Restriction.ulPropTag = PR_ORIGINAL_SENDER_EMAIL_ADDRESS
    Restriction.lpProp = "emailfrom@domain.ru"
    'specify that the search should be performed in the Inbox and Sent Items folders
    newsearchfolder.SearchContainers.Add (DefaultStore.GetDefaultFolder(6))
    newsearchfolder.SearchContainers.Add (DefaultStore.GetDefaultFolder(5))
    'specify the search flags
    newsearchfolder.IsRecursiveSearch = False
    newsearchfolder.IsForegroundSearch = False
    'we are all set: set the search parameters and let the fun begin!
    newsearchfolder.Start
    newsearchfolder.Save
    For Each x In newsearchfolder.Items
    MsgBox x.Size

     Next
    End Function


    Необходимо делать проверку на наличие уже папки SEARCHX, если она уже есть выполнять процедуру дальше.



    23 декабря 2014 г. 12:25

Ответы

  • Try something like the following:

    Set newsearchfolder = SearchRootFolder.Folders.Item("SEARCHX")
    If newsearchfolder Is Nothing Then
      Set newsearchfolder = SearchRootFolder.Folders.AddSearchFolder("SEARCHX")
      ...


    Dmitry Streblechenko (MVP)
    http://www.dimastr.com/redemption
    Redemption - what the Outlook
    Object Model should have been
    Version 5.5 is now available!

    • Помечено в качестве ответа KazunEditor 29 декабря 2014 г. 7:16
    23 декабря 2014 г. 14:15