none
Visual Basic for Applications (Outlook) RRS feed

  • Вопрос

  • Задача: необходимо обробатывать входящие сообщения Outlook.
    Решение: обработчик событий NewMail или NewMailEx

    Private Sub Application_NewMail()
    'какие-то действия требуещие время примерно 5-7 секунд.
    End Sub

    Проблемма: если за раз, примерно в один промежуток с интервалом 2-3 секунды приходит несколько писем, то обработчик не ставит их в очередь, а выполняет обработку текущего сообщения, а все последующие пропускает.

    Вопрос: как обработать все письма, если в момент их получения еще не отработало событие предыдущего письма?

    Например: Если я отправляю 3 сообщения на почтовый адрес у которого есть обработчик следующего вида, то
    '=============================
    Private Sub Application_NewMail()
    MsgBox i
    i = i + 1
    End Sub
    '=============================
    выйдет диалог с цифрой 0 и если не нажать кнопку ОК, в тот момент когда придет 2 и 3 письмо, то 2 и 3го диалога не будет.
    25 октября 2011 г. 6:31

Ответы