如何在 Outlook 中快速延迟发送特定电子邮件至工作时间

立即分享:

如果您需要防止自己在工作时间之外发送特定的电子邮件,您可以使用本文中显示的方法。 它可以让 Outlook 在您发送特定电子邮件时自动检查它是否在工作时间,并将其延迟到工作时间。

有时,您撰写和发送邮件的时间不在您的工作时间内。 在这种情况下,您可能希望将此电子邮件延迟到随后的工作时间发送。 通常,您可以使用本机功能“延迟发送”来延迟此类电子邮件。 但是,通过这种方式,您应该每次都指定交货时间。 太麻烦了。 下面给大家分享一段VBA代码,可以在你发送特定邮件时自动检测是否在工作时间内,并快速延迟到工作时间再发送。

在 Outlook 中快速延迟发送特定电子邮件,直到工作时间

快速延迟发送特定电子邮件,直到工作时间

  1. 首先,启动您的 Outlook 程序。
  2. 然后在出现的 Outlook 主屏幕中,您可以按“Alt + F11”键。
  3. 接下来,您将成功访问 Outlook VBA 编辑器。
  4. 之后,您需要找到并打开“ThisOutlookSession”项目。
  5. 随后,将以下 VBA 代码复制到该项目窗口中。
Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
    Dim objMail As MailItem
    Dim NewSendTime As String
    Dim bDelayMail As Boolean
    Dim nPrompt As Integer
 
    bDelayMail = True
 
    If TypeOf Item Is MailItem Then
       Set objMail = Item
 
       'Work on specific emails only
       'You can change the conditions as per your needs
       If objMail.Recipients.Item(1).Address = "boss@datanumen.com" Then
 
          Select Case Weekday(Date, vbMonday)
                 'Delay 2 days if today is Saturday
                 Case 6
                      NewSendTime = (Date + 2) & " 09:00:00"
                 'Delay 1 days if today is Saturday
                 Case 7
                      NewSendTime = (Date + 1) & " 09:00:00"
                 Case Else
                      If DatePart("h", Now) < 9 Then
                         'Delay to 9 o'clock if now is too early
                         NewSendTime = Date & " 09:00:00"
                      ElseIf DatePart("h", Now) > 18 Then
                         Select Case Weekday(Date, vbMonday)
                                'Delay 3 days if today is Friday and now is over 6 PM
                                Case 5
                                     NewSendTime = (Date + 3) & " 09:00:00"
                                'Delay to 9 o'clock if now is before 6 PM
                                Case Else
                                     NewSendTime = (Date + 1) & " 09:00:00"
                         End Select
                      Else
                         bDelayMail = False
                      End If
            End Select
 
            If bDelayMail = True And objMail.DeferredDeliveryTime = "1/1/4501" Then
               'Ask if to delay sending this email
               nPrompt = MsgBox("Outside Working Hours:" & vbCrLf & "Do you want to delay this email until " & NewSendTime & "?", vbYesNo + vbExclamation, "Delay Email")
 
               If nPrompt = vbYes Then
                  objMail.DeferredDeliveryTime = NewSendTime
               Else
                  objMail.DeferredDeliveryTime = "1/1/4501"
               End If
           End If
       End If
    End If
End Sub

VBA 代码 - 延迟发送特定电子邮件直到工作时间

  1. 稍后您将需要为该电子邮件分配一个数字证书。
  2. 然后更改您的 Outlook 宏设置以允许签名的宏。
  3. 从现在开始,每次发送符合预定义条件的邮件时,如果是在工作时间以外,您都会收到如下图的提示:提示下一个工作时间
  4. 如果您选择“是”,Outlook 将安排在工作时间之前将其发送出去。

拯救损坏的 Outlook 文件

Outlook 因其众多的功能而赢得了很多荣誉。 然而,它仍然有一个致命的缺陷。 那就是 Outlook 容易出错和损坏。 因此,您应该定期备份您的 Outlook 文件。 它可以防止您遭受痛苦的 Outlook 数据丢失。 另外,你最好弄个强大的修复工具,比如 DataNumen Outlook Repair,这可以 修复 Outlook 几秒钟内的问题。

作者简介:

Shirley Zhang 是一位数据恢复专家 DataNumen, Inc.,它是数据恢复技术领域的世界领先者,包括 中密度纤维板恢复 和 outlook 修复软件产品。 欲了解更多信息,请访问 datanumen.com

立即分享:

评论被关闭。