You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用VBA和CDO发送AOL邮件失败,求助解决服务器连接错误

AOL邮箱VBA发送失败(错误-2147220973)的解决方案

针对你遇到的Excel VBA通过CDO发送邮件时,Gmail/Comcast正常但AOL报错“-2147220973 - 传输无法连接到服务器”的问题,可按以下步骤排查修复:

1. 核对并修正AOL SMTP服务器配置

AOL的SMTP服务对端口和加密方式有严格要求,当前代码使用的465端口(SSL)可能存在网络兼容性问题,可尝试切换为587端口(TLS),同时调整加密配置:

  • 若使用465端口:保持smtpusessl = True
  • 若使用587端口:需将smtpusessl设为True(AOL要求TLS加密),并确认网络允许587端口通行

2. 启用AOL账号的SMTP访问权限

登录你的AOL账号,进入账号安全设置,找到“POP/IMAP/SMTP”相关选项,确保SMTP服务已被启用(部分账号默认关闭第三方客户端SMTP访问)。

3. 使用AOL应用专用密码

如果你的AOL账号开启了两步验证,必须使用应用专用密码替代原账号密码:

  1. 登录AOL账号安全中心
  2. 找到“应用专用密码”选项,生成一个新的专用密码
  3. 将代码中的MyPWD替换为这个专用密码

4. 优化CDO配置细节

在原有配置中添加连接超时设置,避免因网络延迟导致连接失败,同时确认所有参数正确:

Option Explicit   
Sub Test_Email()
Dim sResult     As String    
    sResult = Send_Emails("somebody@aol.com", "你的应用专用密码", "smtp.aol.com")        
    MsgBox "Finished: " & vbTab & sResult        
End Sub

Public Function Send_Emails(EmailAddress As String, PWD As String, SMTP As String) As String  
Dim NewMail     As CDO.Message
Dim mailConfig  As CDO.Configuration
Dim fields      As Variant
Dim msConfigURL As String

    On Error GoTo Err:
    Debug.Print "Send: " & EmailAddress & vbTab & PWD & vbTab & SMTP
    Set NewMail = New CDO.Message
    Set mailConfig = New CDO.Configuration
    mailConfig.Load -1          '加载默认配置
    Set fields = mailConfig.fields
    
    With NewMail
        .From = EmailAddress
        .To = "myname@comcast.net"
        .CC = ""
        .BCC = ""
        .Subject = "从Excel发送邮件测试"
        .TextBody = "这是邮件正文,附加测试数据:XXXX"
        .AddAttachment ThisWorkbook.Path & "\" & "openexcel.txt"        '可选附件,不需要可删除
    End With

    msConfigURL = "http://schemas.microsoft.com/cdo/configuration"

    With fields
        .Item(msConfigURL & "/smtpusessl") = True                   '启用SSL/TLS加密
        .Item(msConfigURL & "/smtpauthenticate") = 1                '启用SMTP认证
        .Item(msConfigURL & "/smtpserver") = SMTP   'SMTP服务器地址
        .Item(msConfigURL & "/smtpserverport") = 587                '切换为587端口(TLS)
        .Item(msConfigURL & "/sendusing") = 2                       '使用SMTP服务器发送
        .Item(msConfigURL & "/sendusername") = EmailAddress   '完整AOL邮箱地址
        .Item(msConfigURL & "/sendpassword") = PWD                  '应用专用密码
        .Item(msConfigURL & "/smtpconnectiontimeout") = 30          '设置30秒连接超时
        .Update                 '更新配置
    End With
    NewMail.Configuration = mailConfig
    NewMail.Send
   
    MsgBox "邮件已发送", vbInformation
    Send_Emails = "Success!"
    
Exit_Err:
   '释放对象内存
    Set NewMail = Nothing
    Set mailConfig = Nothing
    Exit Function
 Err:
    Select Case Err.Number
    Case -2147220973 '网络连接问题
        MsgBox "检查网络连接。" & vbNewLine & Err.Number & ": " & Err.Description
    Case -2147220975 '账号密码错误
        MsgBox "检查登录凭据后重试。" & vbNewLine & Err.Number & ": " & Err.Description
    Case Else '其他错误
        MsgBox "发送邮件时遇到错误。" & vbNewLine & Err.Number & ": " & Err.Description
    End Select
    Resume Exit_Err
    Resume
End Function

额外排查点

  • 确认本地防火墙/杀毒软件未拦截VBA程序访问SMTP服务器(465或587端口)
  • 测试网络是否能正常访问smtp.aol.com:可通过命令提示符执行ping smtp.aol.com或telnet smtp.aol.com 587验证连通性

内容的提问来源于stack exchange,提问作者Wayne G. Dunn

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 23:42:51