【问题标题】:VB.NET - Searching Outlook Email Subject LineVB.NET - 搜索 Outlook 电子邮件主题行
【发布时间】:2017-03-14 02:43:23
【问题描述】:

我正在尝试创建一段代码来监视特定电子邮件的 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 应用程序的值?

【问题讨论】:

  • 您是否尝试将Set 替换为Dim
  • @ProGrammer 请查看更新后的问题
  • Application 指的是 Ouitlook.Application 对象的一个​​实例。您是否声明并初始化了该对象?
  • @DmitryStreblechenko 谢谢,感谢您的评论,我更新了我的问题
  • 是的,你需要初始化它。

标签: vb.net outlook


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    关于“ap还没有被赋值”的问题,你需要像这样创建一个Outlook应用对象:

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

    这对我有用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-09
      • 2022-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-14
      • 1970-01-01
      • 2015-02-21
      相关资源
      最近更新 更多