一个意想不到的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 默认的参数是需要认证的呢?

时间: 2024-12-22 21:31:45

一个意想不到的CDO.Message 错误的相关文章

.NET WINFORM中使用本地SMTP SERVICE(CDO.Message错误处理)

smtp|错误|错误处理 这两天做了一个小PROJECT,大致是一个SERVER监控系统,如果发现某部SERVER有异常,发送EMAIL到相关手机,以便在非工作时间和节假日也能及时知道系统故障. 其中一个功能就是发送EMAIL.程序是这样的: myMailMsg.To = "888888888@mobile.att.net"; myMailMsg.From = "support@medicalit.net"; myMailMsg.Subject = "se

注册用户就出现这个CDO.Message.1 错误 80040220_星外虚拟主机

我一注册用户就出现这个~请问这是是哪里出问题拉 CDO.Message.1 错误 '80040220' "SendUsing"配置值无效. /inc-freehost-function/FreeHostFunctionMain.asp,行 637 答:您服务器上没有装iis的smtp,如果你不想装,请在系统参数中配置使用jmail

最新版利用CDO.Message做的vbs下载者_vbs

vbs下载者有很多了,我这里是一个伟大的发明,利用CDO.Message做的vbs下载者.伟大是装B的意思. NP先把代码写完了,详情看这里:http://hi.baidu.com/vbs_zone/blog/item/f254871382e6d0045aaf5358.html LCX大哥在写他的BLOG备份脚本时发现 CDO.MESSAGE可以访问网络下载东西,说是研究研究或许可以用来当下载者用. 于是研究了一会.写出个粗糙的DEMO. exe2hex.vbs //xiaolu写的exe2vb

Windows 2003下不注册组件用CDO.Message发邮件

window|发邮件|注册组件     其实ASP可以做很多事,只是大家不知道怎么用而以.微软为asp提供了非常多的现成有用的组件,而这些组件却没有人知道,如用CDO.Message发送邮件. 什么是CDO.Message?在winnt和win2k下发送邮件要用CDONTS.NewMail,CDONTS.NewMail组件是需要注册的,很简单,只要在服务器上运行命令行regsvr32 Cdonts.dll,在弹出的对话框中确定即可,使用CDONTS.NewMail服务还需安装有iis自带的smt

VBS 下载方法(CDO.MESSAGE)_vbs

于是研究了一会.写出个粗糙的DEMO. exe2hex.vbs //xiaolu写的exe2vbs ,我修改成直接拖放,转成十六进制 ================================================ 复制代码 代码如下: 'code by xiaolu 'change by NetPatch on error resume next set arg=wscript.arguments if arg.count=0 then wscript.quit do whil

使用CDO.Message+SMTP发送邮件

smtp|发送邮件 <!--发送代码--> <% Const cdoSendUsingMethod="http://schemas.microsoft.com/cdo/configuration/sendusing" Const cdoSendUsingPort=2 Const cdoSMTPServer="http://schemas.microsoft.com/cdo/configuration/smtpserver" Const cdoSMT

objective-c-ios 问一个关于crash日志 错误类型的问题

问题描述 ios 问一个关于crash日志 错误类型的问题 比如想问两个问题1.Exception Type: EXC_BAD_ACCESS 一般都是访问了一块已经被回收(不可用的内存)造成的 那Exception Type: EXC_CRASH (SIGABRT)Exception Codes: 0x0000000000000000 0x0000000000000000Exception Note: EXC_CORPSE_NOTIFY 这种EXC_CORPSE_NOTIFY.EXC_CRASH

jmail.Message 错误 8000ffff 的解决方法

jmail.message 错误 8000ffff 的解决方法 jmail.message 错误 '8000ffff' the message was undeliverable. all servers failed to receive the message set jmail=server.createobject("jmail.message") jmail.charset="gb2312" '邮件编码 jmail.silent=false jmail.c

javaweb-jsp页面从数据库捞数据,报了一个好奇怪的错误

问题描述 jsp页面从数据库捞数据,报了一个好奇怪的错误 查询jsp: <%@ page contentType=""text/html; charset=gb2312"" %> Book Query 输入用户名: display页面: 1<%@ page language=""java"" contentType=""text/html; charset=utf-8""