一个意想不到的CDO.Message 错误

简介: 原文:一个意想不到的CDO.Message 错误  几个月之前,写了一个服务从MSMQ取消息发群发邮件的程序,一直也没时间测试,今日一试,出现发送邮件时报错,异常情况如下:   "System.Web.HttpException: 未能访问“CDO.Message”对象。
原文: 一个意想不到的CDO.Message 错误

 

几个月之前,写了一个服务从MSMQ取消息发群发邮件的程序,一直也没时间测试,今日一试,出现发送邮件时报错,异常情况如下:

 

"System.Web.HttpException: 未能访问“CDO.Message”对象。 ---> System.Reflection.TargetInvocationException: 调用的目标发生了异常。 ---> System.Runtime.InteropServices.COMException (0x80040211): 邮件无法发送到 SMTP 服务器。传输错误代码为 0x80040217。服务器响应为 not available\r\n\r\n   --- 内部异常堆栈跟踪的结尾 ---\r\n

 

相关代码如下:

SmtpMail.SmtpServer = smtpServer;

MailMessage mailMessage = new MailMessage();

mailMessage.Subject = mailSubject;

mailMessage.From = mailFrom;

mailMessage.BodyFormat = MailFormat.Html;

mailMessage.Body = mailBody;

SmtpMail.Send(mailMessage);

 

这么简单的代码也会出错?马上写了个WebForm测试,代码运行通过。嗯。难道写成服务就不行了?立即GOOGLE到一份蝈蝈俊整理的解决方案:发送Email时候,可能导致异常:未能访问“CDO.Message”对象,的几种情况整理 ,嘿...天助我也!经一番不懈努力,得到以下答案:

 

如法炮制之后,问题依然如旧;究竟是何原由,仍需亲自研究!:(

 

据我所知,这个smtpServer并无验证机制,webform也通过了,整个系统该给的权限也给过了,也在多个环境(WIN2000,WIN2003)下测试过,真是没招了,索性找个域帐号加个验证一试,添加三行代码如下:

 

mailMessage.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate", "1");

mailMessage.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusername", @"××\××");

mailMessage.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendpassword", "××");

 

测试结果:通过! 哐镗….

 

smtpServer并无验证机制,但不加验证就报“CDO.Message”错?不合理,再次修改代码,去掉用户和密码,指定默认的smtp认证参数为“0”,代码如下:

mailMessage.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate", "0");

 

测试结果:通过!

 

代码虽然通过,但还是不太明白,为什么通过winform发邮件 CDO.Message 默认的参数是需要认证的呢?

目录
相关文章
|
6月前
|
C++
VS 撰写生成了多个撰写错误,其根本原因有X点,如下所列。有关详细信息,请查看CompositionException.Error属性
打开VS开发程序,莫名其妙的出现如下图错误: ![请在此添加图片描述](https://developer-private-1258344699.cos.ap-guangzhou.myqcloud.com/column/article/5877188/20231031-44af3301.png?x-cos-security-token=kcWkaWALSQ5t0gKzZRkVwYOOBJMLQ8Raec6ae2e6bbfad51acf5a4d9120b2417c2ct0qMmH-Si3jPfLmVc91p0Meyjsi8HY285SBbqYnIMNoKHabbahuVoLlCmUMzFuwTv
33 0
|
13天前
|
Java
异常之道:探索Java异常处理与日志的黄金准则
异常之道:探索Java异常处理与日志的黄金准则
24 0
|
6月前
|
IDE 开发工具
【Code审查工作经验之谈】
【Code审查工作经验之谈】
|
11月前
|
机器学习/深度学习 人工智能 安全
企业需要避免的7个常见IT培训错误
企业需要避免的7个常见IT培训错误
|
Java Spring
一次@HandlerException 没有捕获预期异常经历
基于@ControllerAdvice 进行全局异常处理,异常无法捕获情况
549 0
|
JSON 数据格式 Python
Error: 待解决bug
Error: 待解决bug
|
SQL IDE 关系型数据库
同事写了一个update,误用一个双引号,生产数据全变0了!
一、前言 最近经常碰到开发误删除误更新数据,这不,他们又给我找了个麻烦,我们来看下整个过程。
同事写了一个update,误用一个双引号,生产数据全变0了!