VBA使用Gmail发送电子邮件:传输无法连接

运行下面的Excel VBA代码我得到以下错误:

运行时错误-2147220973
传输失败连接到服务器

Public Function send_email() Set cdomsg = CreateObject("CDO.message") With cdomsg.Configuration.Fields .Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2 'NTLM method .Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.gmail.com" .Item("http://schemas.microsoft.com/cdo/configuration/smptserverport") = 465 .Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1 .Item("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = True .Item("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 10 .Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = "mymail@gmail.com" .Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "mypass" .Update End With ' build email parts With cdomsg .To = "mymail@gmail.com" .From = "mymail@gmail.com" .Subject = "the email subject" .TextBody = "the full message body goes here. you may want to create a variable to hold the text" .Send End With Set cdomsg = Nothing End Function 

现在我正在使用波纹pipe代码,它工作正常。 不要忘记更改您的Gmailconfiguration,以允许从其他应用程序发送电子邮件。

 Sub sendEmail(gmail, password, targetEmail, subject, bodyContent) Dim Mail As New Message Dim Config As Configuration: Set Config = Mail.Configuration Config(cdoSendUsingMethod) = cdoSendUsingPort Config(cdoSMTPServer) = "smtp.gmail.com" Config(cdoSMTPServerPort) = 465 Config(cdoSMTPAuthenticate) = cdoBasic Config(cdoSMTPUseSSL) = True Config(cdoSendUserName) = gmail Config(cdoSendPassword) = password Config.Fields.Update Mail.To = targetEmail Mail.from = Config(cdoSendUserName) Mail.subject = subject Mail.HTMLBody = bodyContent Mail.Send End Sub