【问题标题】:How do I request a Read Receipt in a mail merge?如何在邮件合并中请求已读回执?
【发布时间】:2023-03-08 07:16:01
【问题描述】:

我正在使用来自this github 的 VBA 代码进行邮件合并操作。

它基本上包含在一个循环中,该循环应该从 Outlook .oft 模板文件创建名为 OutlookMailItem 的对象,并用 Excel 文件中的数据填充模板字段。

我设置了OutlookMailItem 的属性ReadReceiptRequested = True,但是发送到我的地址的测试邮件没有显示任何确认请求。

OutlookMailItem的创建步骤:

 Dim OutLookApp As Object
 Dim OutLookMailItem As Object
 '....
 Do Until (a condition)
    Set OutLookApp = CreateObject("Outlook.application")
    '...
    Set OutLookMailItem = OutLookApp.CreateItemFromTemplate(workFile)
    With OutLookMailItem
       '...
       .ReadReceiptRequested = True
       '...
    End With
 '...
 Loop


'where workfile is an existing and already initialised file 
 

也许ReadReceiptRequested = True 不起作用,因为 OutlookMailItem 不完全是 MailItem?

【问题讨论】:

  • 您是否检查了自己的 Outlook 设置以确保您没有选择从不发送已读回执以响应已读回执请求的选项?如果选择了该选项,您将不会看到任何确认请求。
  • 您在即时窗格中看到的?ActiveExplorer.Selection(1).ReadReceiptRequested 是什么? 1- 选择已发送文件夹中的项目。 2- 选择收件箱中的项目。
  • @Sam 我检查了我的设置:总是发送已读回执请求。
  • @niton 你能告诉我我必须在哪里使用那一行命令吗?我的 VBA 知识有限。

标签: excel vba outlook


【解决方案1】:

首先,无需在循环中创建新的 Outlook 应用程序实例:

Do Until (a condition)
    Set OutLookApp = CreateObject("Outlook.application")

我建议创建一次应用程序实例,然后在每次迭代中重复使用它。

Application.CreateItemFromTemplate 函数从 Outlook 模板 (.oft) 创建一个新的 Microsoft Outlook 项目并返回该新项目。在How To: Create a new Outlook message based on a template 文章中阅读有关此方法的更多信息。所以,返回的对象很可能是MailItem

MailItem.ReadReceiptRequested 属性返回一个布尔值,指示 true 是否已由发件人请求已读回执。当收件人打开原始电子邮件时,您可能会收到ReportItem objectReportItem 对象类似于MailItem 对象,它包含来自邮件传输系统的报告或错误消息。

【讨论】:

    【解决方案2】:

    我设法通过编辑 Outlook 模板文件来实现我的目的:在“文件”-->“选项”面板中,我取消了“始终请求已读回执”选项的标记,并仅标记了请求单次已读回执的标志MESSAGE,当然它适用于宏的所有邮件。

    我的问题仍然悬而未决,因为我有兴趣使用 VBA 实施解决方案。

    【讨论】:

      猜你喜欢
      • 2018-12-11
      • 2017-07-27
      • 1970-01-01
      • 1970-01-01
      • 2010-11-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-21
      相关资源
      最近更新 更多