【问题标题】:Outlook rules, perhaps with VBAOutlook 规则,可能使用 VBA
【发布时间】:2016-01-06 15:53:53
【问题描述】:

我在 Outlook 中设置规则时遇到了一些问题。我的问题的原因是 Outlook 规则定义和条件似乎不够强大。

我想做什么。 当有人在系统内回复我的电子邮件时,我会从票务系统收到自动消息,主题为“添加了 cmets”。

我想:

  1. 将这些项目移动到特定文件夹中。
  2. 添加 2 个类别
  3. 播放通知声音,
  4. 标记它以在今天跟进,

现在,使用规则,每当我完成一项任务并收到来自该系统的新电子邮件时。该规则将再次运行并再次标记所有已完成的任务。 但我想对已经标记为已完成的邮件例外。

有可能吗? 我正在考虑使用VBA。也许这里有人对我可以从哪里开始有一些指示?

【问题讨论】:

    标签: vba email outlook


    【解决方案1】:

    如果您想在 Outlook 中使用 VBA。您可以执行类似的操作,这样您就可以在收到回复时处理新消息。

    Private WithEvents Items As Outlook.Items
    
    Private Sub Application_Startup()
      Dim Ns As Outlook.NameSpace
      Dim Folder As Outlook.MAPIFolder
    
      Set Ns = Application.GetNamespace("MAPI")
      Set Folder = Ns.GetDefaultFolder(olFolderInbox)
      Set Items = Folder.Items
    End Sub
    
    Private Sub Items_ItemAdd(ByVal Item As Object)
      If TypeOf Item Is Outlook.MailItem Then
      ProcessNewMessage Item
      End If
    End Sub
    
    Private Sub ProcessNewMessage(NewMail As Outlook.MailItem)
        'DO WHAT YOU NEED TO WHEN NEW MAIL ARRIVES HERE
        'E.G
        'MsgBox NewMail.Subject
    End Sub
    

    您只需要对消息到达时的操作进行编程。检查主题包含的内容等。

    【讨论】:

    • 好的,我已经尝试过了。虽然自从我设置它以来没有收到新邮件。我唯一想知道的是这是怎么称呼的?我的意思是,为了不给我错误,我必须将它创建为一个类模块。但是这个类是自动调用还是我需要创建一个常规模块来调用它?
    • 此代码应添加到名为 ThisOutlookSession 的模块中。 stackoverflow.com/questions/5660028/…
    猜你喜欢
    • 1970-01-01
    • 2015-08-20
    • 1970-01-01
    • 1970-01-01
    • 2018-07-22
    • 1970-01-01
    • 2018-12-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多