VB.NET - 搜索Outlook电子邮件主题行

时间:2016-11-02 14:01:18

标签: vb.net outlook

我正在尝试创建一段代码来监控特定电子邮件的Outlook收件箱(代码会将电子邮件发送到自己的电子邮件地址并希望收到该电子邮件)。我需要能够在电子邮件收件箱中搜索特定主题。

我已经看过了我能在这里找到的唯一相关问题 - Searching For Phone Numbers In Email Subject,但它并没有在VB.NET中编译,这一行:

Set sch = Application.AdvancedSearch(strS, strF)尚未同意。

有办法做到这一点吗?我的目的是发送电子邮件并定期在BackgroundWorker上运行此代码,直到看到电子邮件(经过多次尝试后超时)。我无法找到阅读主题的方法。

提前致谢

修改1

只需澄清问题所在:

Visual Studio会自动删除set。问题出在Application.AdvancedSearch,我收到错误:

  

'填写AdvancedSearch'不是' Systems.Windows.Form.Application'

的成员

修改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应用程序的值吗?

2 个答案:

答案 0 :(得分:0)

使用Inbox文件夹中的Items.ItemAdd事件 - 新项目将作为参数传递给您的事件处理程序。

答案 1 :(得分:0)

关于“ap尚未分配值”问题,您需要创建一个这样的Outlook应用程序对象:

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

这对我有用。