如何在 Outlook 中自动拒绝或接受来自特定发件人的会议请求?

Mat*_*ard 6 microsoft-outlook calendar microsoft-outlook-2013

有没有办法在 Outlook 中自动拒绝或接受来自特定发件人的会议请求?

我知道我可以创建一个规则,将包含会议请求的邮件从某个发件人移动到某个文件夹,或者删除它们,但请求的会议仍然显示在我的日历上。我想自动拒绝某些人的请求,这样他们就不会出现在我的日历上。

在“选项”>“日历”中,我看到“自动接受/拒绝”选项,但这些选项似乎适用于所有请求,而不仅仅是来自特定发件人的请求。

我正在使用 Outlook 2013,它是 MS Office Professional Plus 2013 的一部分。

我在此处看到了有关此主题的其他问题,但答案并未解决我的担忧,即所请求的会议仍会显示在我的日历上。我无法对这些问题发表评论,因为我还没有足够的声誉。

har*_*ymc 2

可以通过删除规则来拒绝,方法是在“选择条件”对话框中指定“会议邀请或更新”选项。

有关使用答案模板拒绝的详细教程(包含屏幕截图),请参阅文章 如何自动拒绝 Outlook 中特定人员的会议邀请?

问题实际上在于接受,而这不能使用规则来完成。这需要 VBA 编程(哎呀!),按如下方式完成:

  • Alt按+键F11打开 Microsoft Visual Basic for Applications 窗口

  • 在 Microsoft Visual Basic for Applications 窗口的左窗格中,双击ThisOutlookSession打开“代码”窗口,然后将以下 VBA 代码复制到该窗口中。该脚本还将设置提醒时间段,但如果您不希望这样做,请删除从 开始到 With xAppointmentItem为止的部分End With。替换引号内的“发件人姓名”和/或向其 IF 命令添加更多条件。

Public WithEvents GItems As Outlook.Items
Private Sub Application_Startup()
    Set GItems = Outlook.Application.Session.GetDefaultFolder(olFolderInbox).Items
End Sub
Private Sub GItems_ItemAdd(ByVal Item As Object)
Dim xMtRequest As MeetingItem
Dim xAppointmentItem As AppointmentItem
Dim xMtResponse As MeetingItem
If Item.Class = olMeetingRequest Then
    Set xMtRequest = Item
    Set xAppointmentItem = xMtRequest.GetAssociatedAppointment(True)
    If xAppointmentItem.GetOrganizer.Name = "Sender Name" Then
        With xAppointmentItem
            .ReminderMinutesBeforeStart = 45
            .Categories = "Orange Category"
            .Save
        End With
        Set xMtResponse = xAppointmentItem.Respond(olMeetingAccepted, True)
        xMtResponse.Send
        xMtRequest.Delete
    End If
End If
End Sub
Run Code Online (Sandbox Code Playgroud)
  • 保存代码

  • Alt+Q关闭 Microsoft Visual Basic

  • 重新启动 Outlook。

olMeetingAccepted通过替换为,可以使用相同的 VBA 宏来拒绝 olMeetingDeclined