通过SMTP发送邮件时,我得到"传输无法连接到服务器"

时间:2017-01-04 12:33:32

标签: excel vba excel-vba smtp cdo.message

我有以下代码使用CDO从VBA宏发送邮件。我在代码中遇到错误:

  

传输失败连接服务器错误

我正在从Gmail SMTP服务发送邮件。看起来配置设置正确,但不知怎的,它不起作用。

Sub Email()

    Dim CDO_Mail As Object
    Dim CDO_Config As Object
    Dim SMTP_Config As Variant
    Dim strSubject As String
    Dim strFrom As String
    Dim strTo As String
    Dim strCc As String
    Dim strBcc As String
    Dim strBody As String

    strSubject = "Results from Excel Spreadsheet"
    strFrom = "xxx@gmail.com"
    strTo = "xxx@gmail.com"
    strBody = "The total results are: 167"

    Set CDO_Mail = CreateObject("CDO.Message")

    Set CDO_Config = CreateObject("CDO.Configuration")
    CDO_Config.Load -1

    Set SMTP_Config = CDO_Config.Fields

    With SMTP_Config
      .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/smtpauthenticate") = 1
      .Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = "xxxx@gmail.com"
      .Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "xxxx"
      .Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 465
      .Item("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = True
        .Update
    End With

    With CDO_Mail
        Set .Configuration = CDO_Config
    End With

    CDO_Mail.Subject = strSubject
    CDO_Mail.From = strFrom
    CDO_Mail.To = strTo
    CDO_Mail.TextBody = strBody
    CDO_Mail.Send

End Sub

1 个答案:

答案 0 :(得分:1)

该代码对我来说完全正常(将 Gmail 发送到 Gmail) - 因此您需要检查以下内容:

  • 尝试使用端口587以及端口465(further reading
  • 在Gmail中为Access for less secure apps配置您的发送帐户 - 以下support page
  • Turn On个选项
  

允许安全性较低的应用访问您的帐户   Google可能会阻止某些不使用现代安全标准的应用或设备的登录尝试。由于这些应用和设备更容易入侵,因此阻止它们有助于确保您的帐户安全。

     

不支持最新安全标准的应用程序的一些示例包括:

     

适用于iOS 6或更低版本的iPhone或iPad上的邮件应用

     

8.1版本之前Windows手机上的Mail应用程序

     

某些桌面邮件客户端,如Microsoft Outlook和Mozilla Thunderbird

     

...

     

选项2:更改您的设置,以允许安全性较低的应用访问您的帐户。我们不推荐此选项,因为它可能会让某人更容易侵入您的帐户。如果您仍想允许访问,请按照以下步骤操作:

     

转到"安全性较低的应用"我的帐户中的部分。

     

"访问不太安全的应用,"选择开启。 (Google Apps用户请注意:如果您的管理员已锁定不太安全的应用帐户访问权限,则会隐藏此设置。)

CDO现在已经很老了,所以假设这是一个不支持最新安全标准的应用程序示例。