KutoolsforOffice — 一套方案,五大工具。事半功倍。

Outlook:如何在未收到回复时自动重发邮件

作者Sun修改日期

当您需要向同事、合作伙伴或其他人发送邮件并希望尽快收到回复时,可以设置自动重发邮件功能,如果在指定时间内未收到回复,系统将自动再次发送邮件。

使用提醒和 VBA 实现未收到回复时自动重发


使用提醒和 VBA 实现未收到回复时自动重发

 

第 1 部分:在指定时间设置提醒

1. 右键单击已发送邮件文件夹中需要在无人回复时重发的邮件,在弹出的右键菜单中选择“跟进” > “添加提醒”。

文档未回复时重新发送 1

2. 在弹出的“自定义”对话框中,请保持“提醒”复选框处于勾选状态,然后在下方的下拉框中选择您希望收到回复的日期和时间,或直接在输入框中填写日期和时间。最后,点击“确定”。

文档未回复时重新发送 1
文档未回复时重新发送 1

第 2 部分:插入 VBA,在指定时间未收到回复时重发邮件

3. 按下 "Alt“ + “F11" 键,即可打开“Microsoft Visual Basic for Applications”窗口。

4. 在“Project – Project 1”窗格中,双击“ThisOutlookSession”以新建一个空白脚本,然后将以下 VBA 代码复制并粘贴到该脚本中。

VBA:在未收到回复时重发邮件

Public WithEvents GInboxItems As Outlook.Items
'UpdatebyExtendoffice20220413
Private Sub Application_Startup()
  Dim xInboxFld As Folder
  Set xInboxFld = Application.Session.GetDefaultFolder(olFolderInbox)
  Set GInboxItems = xInboxFld.Items
End Sub

'Judge
Private Sub GInboxItems_ItemAdd(ByVal Item As Object)
  Dim xSentItems As Outlook.Items
  Dim xMail As MailItem
  Dim i As Long
  Dim xSubject As String
  Dim xItemSubject As String
  Dim xSendTime As String
  On Error Resume Next
  Set xSentItems = Application.Session.GetDefaultFolder(olFolderSentMail).Items
  If Item.Class <> olMail Then Exit Sub
  For i = xSentItems.Count To 1 Step -1
    If xSentItems.Item(i).Class = olMail Then
      Set xMail = xSentItems.Item(i)
      xSubject = LCase(xMail.Subject)
      xSendTime = xMail.SentOn
      xItemSubject = LCase(Item.Subject)
      If (xItemSubject = "re: " & xSubject) Or (InStr(xItemSubject, xSubject) > 0) Then
        If Item.SentOn > xSendTime Then
           With xMail
             .ClearTaskFlag
             .ReminderSet = False
             .Save
           End With
        End If
      End If
    End If
  Next i
End Sub

'Reminder
Private Sub Application_Reminder(ByVal Item As Object)
  Dim xPrompt As String
  Dim xResponse As Integer
  Dim xFollowUpMail As Outlook.MailItem
  Dim xRcp As Recipient
  On Error Resume Next
  'Resend
  If (Item.Class <> olMail) Then Exit Sub
  xPrompt = "You haven't yet received the reply of " & Chr(34) & Item.Subject & Chr(34) & " within your expected time. Do you want to send a follow-up notification email?"
  xResponse = MsgBox(xPrompt, vbYesNo + vbQuestion, "Kutools for Outlook")
  If xResponse = vbNo Then Exit Sub
  Set xFollowUpMail = Application.CreateItem(olMailItem)
  With xFollowUpMail
    For Each xRcp In Item.Recipients
      .Recipients.Add (xRcp.Address)
    Next
    .Recipients.ResolveAll
    .Subject = "Follow Up: " & Chr(34) & Item.Subject & Chr(34)
    .Body = "Please respond to my email " & Chr(34) & Item.Subject & Chr(34) & " as soon as possible"
    .Attachments.Add Item
    .Display
  End With
End Sub

5. 保存代码后,返回主界面,点击“文件”>“选项”,在“Outlook 选项”窗口左侧选择“信任中心”,然后点击“信任中心设置”以打开“信任中心”窗口。接着点击“宏设置”,确保右侧已勾选“启用所有宏(不推荐;可能会运行有潜在危险的代码)”选项。最后点击“确定”>“确定”。

文档未回复时重新发送 1
文档未回复时重新发送 1

6. 现在,如果已设置提醒的已发送邮件在指定时间内未收到回复,将会弹出对话框,提醒您是否需要重发邮件以便通知对方。

文档未回复时重新发送 1

7. 点击“是”后,将弹出一个新的邮件窗口,并自动附加之前的邮件。您可以重新编辑邮件正文,然后点击“发送”进行重发。

文档未回复时重新发送 1

8. 点击“否”后,该提醒将被删除。

文档未回复时重新发送 1

注意:如果在指定时间前已收到邮件回复,VBA 将自动移除提醒。


最佳办公效率工具

体验全新 Kutools for Outlook,畅享 100+ 强大功能!立即点击下载,不容错过!

🤖KUTOOLS AI采用先进 AI 技术,轻松处理邮件,涵盖回复、摘要、优化、扩展、翻译及撰写等功能。

📧 邮件自动化自动答复(支持 POP 和 IMAP)/定时发送邮件/发送邮件时按规则自动抄送密送/自动转发(高级规则)/自动添加称呼/自动将多收件人邮件拆分为单独信息……

📨 邮件管理撤回邮件/按主题等条件拦截诈骗邮件/删除重复邮件/高级搜索/整合文件夹……

📁 附件增强批量保存/批量分离/批量压缩/自动保存/自动拆离/自动压缩……

🌟 界面魔法😊更多美观时尚表情/重要邮件到达时提醒您/最小化 Outlook 而不是直接关闭……

👍 一键精彩功能带附件全部答复/反钓鱼邮件/🕘显示发送者当前时间时区……

👩🏼‍🤝‍👩🏻 联系人与日历批量从选定邮件中提取添加联系人/将联系人组拆分为个人组/移除生日提醒……

在您的首选语言中畅享 Kutools —— 支持英语、西班牙语、德语、法语、中文等 40 多种语言!

一键解锁 Kutools for Outlook,告别等待,立即下载,让效率倍增!

kutools for outlook 功能1kutools for outlook 功能2

🚀 一键下载 — 即可获取全部 Office 加载项

强烈推荐:Kutools for Office(5 合 1)

一键下载五个安装包,即可同时获得 Kutools for Excel、Outlook、Word、PowerPointOffice Tab Pro立即点击下载!

  • 一键便捷:只需一次操作,即可下载全部五个安装包。
  • 🚀 轻松应对各类 Office 任务:随时按需安装所需插件,助您高效办公,不容错过!
  • 🧰 包含:Kutools for Excel / Kutools for Outlook / Kutools for Word / Office Tab Pro / Kutools for PowerPoint