如何在Excel VBA中使用CDO电子邮件请求已读回执?
使用Gmail电子邮件服务撰写电子邮件时,可以选择请求阅读回执 使用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
字段(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中的任何尝试或使用代码的尝试都没有让我选择返回已读收据,我也没有收到任何收据。