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

ASP Classic应用中使用CDOSYS发送邮件失败问题排查

ASP Classic CDOSYS邮件发送失败调试方案

代码核心问题分析

你的代码存在两个关键问题:

  1. 未执行发送操作:配置完CDO对象后,没有调用objCDO.Send()方法,邮件根本没提交到邮件服务器。
  2. SMTP配置不完整:仅设置了sendusing=2(指定SMTP发送方式),但缺少SMTP服务器地址、端口、认证信息等必要配置项,即便调用Send也会失败。

修复后的代码示例

<% 
If Request.Form("Submit")="Send Email" Then 
    Dim objCDO, cdoConfig
    On Error Resume Next ' 开启错误捕获
    
    Set objCDO = Server.CreateObject("CDO.Message")
    Set cdoConfig = objCDO.Configuration
    
    ' 基础邮件信息
    objCDO.Importance = 2
    objCDO.To = "as18831@ncr.com"
    objCDO.From = "as18831@ncr.com"
    objCDO.Subject = "Test Mail"
    objCDO.TextBody = "This is to test email functionality"
    
    ' 完整SMTP配置(根据你的邮件服务器修改)
    With cdoConfig.Fields
        .Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2 ' 使用SMTP发送
        .Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "your-smtp-server.com" ' 替换为实际SMTP服务器地址
        .Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25 ' 常用端口,可根据服务器调整(如587、465)
        .Item("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = False ' 服务器要求SSL则设为True
        .Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1 ' 1=基本认证,0=无认证,2=NTSLM
        .Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = "your-email-username" ' SMTP认证用户名
        .Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "your-email-password" ' SMTP认证密码
        .Update ' 保存配置
    End With
    
    ' 执行邮件发送
    objCDO.Send
    
    ' 错误反馈
    If Err.Number <> 0 Then
        Response.Write("<i>发送失败,错误信息:" & Err.Description & "</i><p>")
    Else
        Response.Write("<i>Mail was Sent</i><p>")
    End If
    
    ' 释放对象
    Set objCDO = Nothing
    Set cdoConfig = Nothing
End If 
%>

<!DOCTYPE html>
<html>
<head>
    <title> Send Email </title>
</head>
<body>
    <form method="post" action="">
        <input type="submit" name="submit" value="Send Email"/>
    </form>
</body>
</html>

调试步骤

  • 启用错误捕获:通过On Error Resume Next结合Err对象,直接获取具体错误信息,比如SMTP连接失败、认证失败等。
  • 验证SMTP配置:确认SMTP地址、端口、认证信息是否正确,企业内部邮箱(如Exchange)需咨询IT部门获取准确参数。
  • 查看服务器日志:在Windows服务器的事件查看器中,查找CDOSYS相关日志,定位发送失败的具体原因。
  • 测试网络连通性:在服务器上用telnet your-smtp-server.com 25命令,检查SMTP端口是否能正常访问,排除防火墙拦截问题。
  • 检查垃圾邮件文件夹:部分邮件会被收件方反垃圾系统拦截,先确认是否在垃圾邮件目录中。

内容的提问来源于stack exchange,提问作者Ananya Sharma

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 07:12:52