因此,我有以下代码,用于从Excel VBA发送电子邮件。代码一直运行得很好,直到今天早上,由于没有明显的原因,宏工作了,但是没有任何东西到达目标地址!这是SMTP中继问题吗?如果是,我该如何解决它?或者这可能是"http://schemas.microsoft.com/cdo/configuration“的问题(我仍然不知道它是如何工作的!)
下面是宏-只是为了保护无辜而更改了名称:)
Sub CDO_Mail()
Dim iMsg As Object
Dim iConf As Object
Dim strbody As String
Dim Flds As Variant
Set iMsg = CreateObject("CDO.Message")
Set iConf = CreateObject("CDO.Configuration")
iConf.Load -1 ' CDO Source Defaults
Set Flds = iConf.Fields
With Flds
.Item("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = True
.Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
.Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = "Mick@mouse.com"
.Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "BigSecret"
.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "auth.smtp.1and1.fr"
.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 465
.Item("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 60
.Update
End With
With iMsg
Set .Configuration = iConf
.To = "MyEmailAddress@gm.com"
.CC = ""
.BCC = ""
.From = "TheMainMan"
.Subject = "Important message"
.TextBody = "BODYTEXT"
.Send
End With
End Sub发布于 2014-09-01 22:07:36
请尝试使用早期绑定。这还有一个额外的好处,那就是可以使用自动完成功能。您的配置可以这样设置:
Dim iConf As CDO.Configuration
Set iConf = New CDO.Configuration ' CreateObject("CDO.Configuration")
With iConf.Fields
.Item(cdoSendUsingMethod) = cdoSendUsingPort
.Item(cdoSMTPServerPort) = 465
.Item(cdoSMTPServer) = "auth.smtp.1and1.fr"
.Item(cdoSendUserName) = "Mick@mouse.com"
.Item(cdoSendPassword) = "BigSecret"
'etc.
.Update
End With要使用此功能,您需要设置一个对CDO库的显式引用: Tools > reference > set checkmark旁边的Microsoft CDO。

https://stackoverflow.com/questions/25607194
复制相似问题