在Excel中使用VBA发送电子邮件,没有Outlook,64位

我正在使用下面的代码尝试使用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位新手,喜欢它,但是正在学习。

有人build议,如果我在正确的轨道上,我怎么能得到这个飞行。 如果我不在正确的轨道上,还有什么可能是挂断?

我search了search问答,但没有发现任何具体的东西。

在Google的GMail网站上,您必须启用此function才能使CDO正常工作。

在你的Gmail页面点击:

设置 – 帐户和导入 – 其他Google帐户设置 – [在页面底部] 允许不太安全的应用程序

另外从内存中,你必须在第一次使用电子邮件时点击一个链接(已经过去了几年)。

运行时错误是networking相关错误,无法连接到指定的邮件服务器,请尝试使用ssl connection = True

.Item("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = False