【问题标题】:When sending mail via SMTP, I get "Transport Failed to Connect to server"通过 SMTP 发送邮件时,我收到“传输无法连接到服务器”
【发布时间】:2019-04-06 04:17:38
【问题描述】:

我有下面的代码来使用 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

【问题讨论】:

    标签: vba excel smtp cdo.message


    【解决方案1】:

    该代码对我来说完全正常( Gmail Gmail) - 所以您需要检查以下内容:

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

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

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

    安装 iOS 6 或更低版本的 iPhone 或 iPad 上的邮件应用

    Windows 手机上 8.1 版本之前的邮件应用

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

    ...

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

    转到“我的帐户”中的“不太安全的应用”部分。

    在“访问安全性较低的应用”旁边,选择开启。 (Google Apps 用户注意:如果您的管理员锁定了不太安全的应用帐户访问权限,则此设置会隐藏。)

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-12-19
      • 1970-01-01
      • 1970-01-01
      • 2011-10-12
      • 2018-06-30
      • 2015-08-04
      • 1970-01-01
      • 2014-07-06
      相关资源
      最近更新 更多