【发布时间】:2016-12-24 21:40:42
【问题描述】:
我正在使用下面的代码尝试使用 VBA 在 Excel 中发送电子邮件。我不断收到错误消息:
运行时错误“-2147220973 (80040213)”: 传输无法连接到服务器。
我尝试过更改端口(25、465、587)、更改电子邮件服务器(smtp.gmail.com、smtp.live.com),同时尝试了 gmail 和 Hotmail,在两个 gmail 帐户上都启用了不太安全的功能,甚至设置了 Outlook并在 Avast 中禁用了防火墙。
代码如下:
Sub CDO_Mail_Small_Text()
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/sendusing") = 2
.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.gmail.com"
.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 465 '587 '465 '25
.Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1 'cdoBasic
.Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = "xyz@gmail.com"
.Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "123456"
.Update
End With
strbody = "Hi there" & vbNewLine & vbNewLine & _
"This is line 1" & vbNewLine & _
"This is line 2" & vbNewLine & _
"This is line 3" & vbNewLine & _
"This is line 4"
With iMsg
Set .Configuration = iConf
.To = "charlie@gmail.com"
.CC = ""
.BCC = ""
.From = "xyz@gmail.com"
.Subject = "New figures"
.TextBody = strbody
.Send
End With
End Sub
我现在开始认为这与我使用的是 Windows 10 64 位和 Office 2016 64 位这一事实有关。 - 只是预感,我是 64 位新手,喜欢它,但正在学习。
有人可以建议我是否走在正确的轨道上,以及如何才能让它飞起来。如果我没有走在正确的轨道上,还有什么可能是挂断?
我搜索了搜索问答,但没有找到任何具体内容。
【问题讨论】:
-
运行时错误是网络相关错误,无法连接到指定的邮件服务器。尝试使用 ssl 连接,看看我的回答它应该可以工作。
标签: excel vba email 32bit-64bit cdo.message