如何在Excel VBA中使用CDO电子邮件请求已读回执?

如何在Excel VBA中使用CDO电子邮件请求已读回执?,excel,vba,receipt,cdo.message,cdo,Excel,Vba,Receipt,Cdo.message,Cdo,使用Gmail电子邮件服务撰写电子邮件时,可以选择请求阅读回执 使用CDO库创建电子邮件时是否可以请求它 我尝试通过字段(CDO.CdoMailHeader.cdoreturnereceipto)=from向自己发送电子邮件,但发送的电子邮件没有请求读取收据 模块中的Excel VBA代码: ' VBA project name: ' VBAProject ' Microsoft Excel 2013 built-in references: ' Excel - Microsoft Excel

使用Gmail电子邮件服务撰写电子邮件时,可以选择请求阅读回执

使用CDO库创建电子邮件时是否可以请求它

我尝试通过
字段(CDO.CdoMailHeader.cdoreturnereceipto)=from
向自己发送电子邮件,但发送的电子邮件没有请求读取收据

模块中的Excel VBA代码:

' VBA project name:
' VBAProject

' Microsoft Excel 2013 built-in references:
' Excel - Microsoft Excel 15.0 Object Library
' VBA - Visual Basic For Applications

' Aditional references:
' ADODB - Microsoft ActiveX Data Objects 6.1 Library
' CDO - Microsoft CDO for Windows 2000 Library

Option Explicit

Private Sub SendMail( _
  ByVal ConnectionTimeout As Long, _
  ByVal Server As String, _
  ByVal Port As Long, _
  ByVal UseSSL As Boolean, _
  ByVal From As String, _
  ByVal MessageTo As String, _
  ByVal Subject As String, _
  ByVal UseHTML As Boolean, _
  ByVal HTMLBody As String, _
  ByVal TextBody As String)

  Dim Message As CDO.Message
  Dim Configuration As CDO.Configuration
  Dim Fields As ADODB.Fields

  Set Message = New CDO.Message
  Set Configuration = Message.Configuration
  Set Fields = Configuration.Fields

  Fields(CDO.CdoConfiguration.cdoSendUsingMethod) = CDO.CdoSendUsing.cdoSendUsingPort
  Fields(CDO.CdoConfiguration.cdoSMTPAuthenticate) = CDO.CdoProtocolsAuthentication.cdoBasic
  Fields(CDO.CdoConfiguration.cdoSMTPConnectionTimeout) = ConnectionTimeout
  Fields(CDO.CdoConfiguration.cdoSMTPServer) = Server
  Fields(CDO.CdoConfiguration.cdoSMTPServerPort) = Port
  Fields(CDO.CdoConfiguration.cdoSMTPUseSSL) = UseSSL
  Fields.Update

  Message.BodyPart.Charset = CDO.CdoCharset.cdoUTF_8
  Message.From = From
  Message.To = MessageTo
  Message.Subject = Subject
  If UseHTML Then
    Message.HTMLBody = HTMLBody
  Else
    Message.TextBody = TextBody
  End If
  Message.Send

End Sub

此链接表示您必须“指定头的处置通知”。这个链接建议了如何做到这一点@Nick.McDermaid我尝试了
Message.Fields(“处置通知”)=From
以及
Configuration.Fields
CDO.CdoMailHeader.cdoDispositionNotificationTo
,但电子邮件没有请求读取回执。您是否测试过通过gmail手动发送电子邮件?这意味着,如果基本上是个人地址,读收据在gmail中不起作用。@Nick.McDermaid在我从email1发送到自己时使用gmail,但当我发送到email2时,它不会显示任何东西,就像我通过代码发送电子邮件一样(email1是
@@Nick.McDermaid我在gmail中的任何尝试或使用代码的尝试都没有让我选择返回已读收据,我也没有收到任何收据。