关于asp.net 下发送邮件 未能访问"CDO.Message"对象 问题(1)

在Asp.net中有时要用到内置的发送邮件对像,但经常会出现 未能访问"CDO.Message"对象

   的问题,而你的IIS安装的没有问题,而且SMTP服务也安装了,但是在用

   MailMessage ObjMail_1=new MailMessage();

  此种对像发送邮件时就报错,捕获的异常信息是“未能访问"CDO.Message"对象”

其实这是因为在安装.net IDE VS.net 后它会把系统的cdonts.dll的注册信息给更新掉了,

所以,你只需在系统中重新注册一下就行了,方法如下

在DOS窗口内,进入System32目录下,执行regsvr32 cdonts.dll 即可。

在C#中,你可以使用System.Net.Mail命名空间下的CDO.Message类来发送电子邮件。这是一个基于COM组件的技术,虽然不是推荐的最佳实践,但在一些特定场景下可以使用。以下是发送邮件的基本步骤: 1. 引入必要的命名空间: ```csharp using System; using System.Net; using System.Net.Mail; using System.Runtime.InteropServices; ``` 2. 创建`MailMessage`实例并设置信息: ```csharp MailMessage message = new MailMessage(); message.From = new MailAddress("your_email@example.com"); message.To.Add("recipient_email@example.com"); message.Subject = "Subject of your email"; message.Body = "The content of your email"; ``` 3. 初始化`SmtpClient`对象,并指定SMTP服务器地址和端口: ```csharp SmtpClient smtpClient = new SmtpClient(); smtpClient.Host = "smtp.example.com"; // 你的SMTP服务器地址 smtpClient.Port = 587; // 或者465如果需要加密 ``` 4. 如果需要身份验证,添加登录信息: ```csharp smtpClient.Credentials = new NetworkCredential("your_username", "your_password"); ``` 5. 使用CDO.Message通过SMTP发送邮件: ```csharp // 使用CDO来创建邮件 object oMsg = Marshal.GetActiveObject("CDO.Application"); CDO.Message msg = (CDO.Message)oMsg.CreateItem(0); // 设置消息属性 msg.Subject = message.Subject; msg.HTMLBody = message.Body; // 将MailMessage转换为CDO.Message以便发送 msg.Session = smtpClient.Session; msg.SendUsingAccount = smtpClient.Credentials; // 发送邮件 msg.Send(); ```
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值