Asp.Net Forums之邮件发送

原文: http://blog.joycode.com/dotey/archive/2005/01/15/43113.aspx

Asp.Net Forums之邮件发送

Forums中很多地方要用到邮件发送,如:邮件注册、找回密码、邮件订阅等。

添加新贴的代码流程非常慢。每次添加帖子,应用程序首先要确保没有重复贴,然后格式化帖子内容和表情图像,记号并索引,如果必要还要将帖子添加到相应的队列中,对附件进行有效性检查,最终完成发贴后,给预订者发出 e-mail 通知。显然,这里做的工作太多。索引帖子是一个很耗时的操作,此外,内建的 System.Web.Mail 功能要与 SMTP 服务器连接并顺序发送邮件。当特定帖子或主题预定者数量增加时,发送帖子的执行时间会越来越长。

  并不是每个请求都需要索引邮件,所以Forums采用的是批量集中处理,并且一次只索引25个帖子或每隔五分钟发送一次邮件。定时器这部分在我的上一个blog有说明《asp.net forums中定时器的应用

在Asp.Net中邮件发送非常容易,一般都需要Smtp服务器,但是一些免费信箱的Smtp服务器(如smtp.163.com)都需要账号密码验证。在MailMessage对象的Filds集合中加入以下内容即可:

Message.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate", "1" );
//basic authentication
Message.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusername", txtUserName.Text );
// 设置smtp服务器登录账号(如您163.com的信箱账号)
Message.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendpassword", txtPassword.Text );
// 设置smtp服务器登录密码 (如您的163.com的信箱账号密码)

但是使用免费的Smtp服务器一定要注意一个问题,就是发送邮件的账号(即Message.From)必须和上面的Smtp服务器登录账号一致,否则将会导致找不到cdo对象的异常。

示例代码:
邮件发送示例代码

转载于:https://www.cnblogs.com/walkingboy/archive/2005/04/14/137747.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值