如何在邮件合并中请求已读回执?

How do I request a Read Receipt in a mail merge?

我正在使用来自 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 模板文件实现了我的目的:在 FIle--> 选项面板中,我取消标记选项“始终请求已读回执”,并仅标记请求已读回执的标记单个消息,当然它适用于宏的所有邮件。

我让这个问题仍然悬而未决,因为我有兴趣用 VBA.

实现一个解决方案

首先,不需要在循环中创建新的Outlook Application实例:

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

我建议创建一次 Application 实例,然后在每次迭代中重新使用它。

Application.CreateItemFromTemplate function creates a new Microsoft Outlook item from an Outlook template (.oft) and returns the new item. Read more about this method in the How To: Create a new Outlook message based on a template 篇文章。因此,返回的对象很可能是 MailItem

收件人打开原始电子邮件时收到的 MailItem.ReadReceiptRequested property returns a boolean value that indicates true if a read receipt has been requested by the sender. You may expect a ReportItem objectReportItem 对象类似于 MailItem 对象,它包含来自邮件传输系统的报告或错误消息。