2016-11-02 2 views
0

Я пытаюсь создать кусок кода, который отслеживает входящие почтовые ящики для определенного письма (код отправляет электронное письмо на свой собственный адрес электронной почты и ожидает получения этого сообщения) , Мне нужно иметь возможность искать почтовый ящик для определенной темы.VB.NET - Поиск темы электронной почты Outlook

Я взял посмотреть на единственный уместный вопрос я мог бы найти здесь - Searching For Phone Numbers In Email Subject, но он не компилируется в VB.NET, строку:

Set sch = Application.AdvancedSearch(strS, strF) не согласился с.

Есть ли способ сделать это? Моя цель - отправить электронное письмо и периодически запускать этот код на BackgroundWorker до тех пор, пока не будет видно электронное письмо (тайм-аут после стольких попыток). Я просто не могу найти способ прочесть тему.

Заранее спасибо

Edit 1

Просто прояснить, что вопрос:

Visual Studio автоматически удаление set. Проблема с Application.AdvancedSearch, я получаю ошибку:

'AdvancedSearch' is not a member of 'Systems.Windows.Form.Application'

Edit 2

Обновленный код этого:

Sub TestAdvancedSearchComplete() 
     Dim ap As Outlook.Application 
     Dim sch As Outlook.Search 
     Dim rsts As Outlook.Results 
     Dim i As Integer 
     blnSearchComp = False 
     Const strF As String = "urn:schemas:mailheader:subject LIKE '%###%'" 
     Const strS As String = "Inbox" 
     sch = ap.AdvancedSearch(strS, strF) 
     While blnSearchComp = False 
      Application.DoEvents() 
     End While 
     rsts = sch.Results 
     For i = 1 To rsts.Count 
      MsgBox(rsts.Item(i).SenderName) 
     Next 
    End Sub 

код теперь компиляции ОК, но показывает, что ap имеет еще не назначено значение, я думаю, мне нужно присвоить ему значение, ссылающееся на приложение Outlook?

+0

Вы пытались заменить 'Set' на' Dim'? –

+0

@ProGrammer См. Обновленный вопрос – SilverShotBee

+1

Приложение относится к экземпляру объекта Ouitlook.Application. Вы объявили и инициализировали этот объект? –

ответ

0

Используйте событие Items.ItemAdd в папке «Входящие» - новый элемент будет передан в качестве аргумента обработчику события.

0

относительно «ар еще не было присвоено значение» вопрос, вам нужно создать объект приложения Перспективы, как это:

Dim ap As Outlook.Application = CreateObject("Outlook.application") 

Это работало для меня.

Смежные вопросы