在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