ASP.NET中用CDO带验证发送邮件

ASP.NET下发送邮件还真麻烦
ASP底下有JMAIL,ASPMAIL等许多好用的MAIL COM对象
ASP.NET功能倒是强大,并且它自带的System.Web.Mail命名空间也提供了几个用于发送邮件的类
可惜的是它没有显式的支持SMTP验证方式发邮件,而这年头,哪还有匿名的SMTP供你发邮件呢?
除此之外,像EASYMAIL.NET 等商业的MAIL组件,提供的功能倒是不错,可惜价格不菲,更让人不解的是,我拿到的一个EASYMAIL.NET 2.0测试版中竟然没有CC和BCC属性,就是说不能抄送和暗送,郁闷
其他的MAIL组件,像开源的OPEN SMTP.NET,功能也不好
到处找了很久,问一个老友,他也是.NETER
对我说:用SOCKET自己写一个呀!看了看,SOCKET倒是不难,问题是你自己写一个,调试半天,还不能保证没有漏洞呢,万一用起来,使用中有什么麻烦,不就糟了
后来查了查MSDN,原来CDO是支持验证发送的,只不过,MS实现的比较诡异
下面是支持验证的方式发送邮件的一段代码
None.gif public   static   bool  Send( string  strFrom, string  strTo, string  CC, string  BCC, string  strSubject, string  strTextBody, string  strHtmlBody, bool  IsHtml)
ExpandedBlockStart.gifContractedBlock.gif        
dot.gif {
InBlock.gif            
try
ExpandedSubBlockStart.gifContractedSubBlock.gif            
dot.gif{                
InBlock.gif                System.Web.Mail.MailMessage Mail
=new System.Web.Mail.MailMessage();
InBlock.gif                Mail.From
=strFrom;
InBlock.gif                Mail.To
=strTo;
InBlock.gif                
if(CC!=string.Empty)
InBlock.gif                    Mail.Cc
=CC;
InBlock.gif                
if(BCC!=string.Empty)
InBlock.gif                    Mail.Bcc
=BCC;
InBlock.gif                Mail.Priority
=System.Web.Mail.MailPriority.High;
InBlock.gif                Mail.Subject
=strSubject;
InBlock.gif                
if(IsHtml)
ExpandedSubBlockStart.gifContractedSubBlock.gif                
dot.gif{
InBlock.gif                    Mail.BodyFormat
=System.Web.Mail.MailFormat.Html;
InBlock.gif                    Mail.Body
=strHtmlBody;
ExpandedSubBlockEnd.gif                }

InBlock.gif                
else
ExpandedSubBlockStart.gifContractedSubBlock.gif                
dot.gif{
InBlock.gif                    Mail.BodyFormat
=System.Web.Mail.MailFormat.Text;
InBlock.gif                    Mail.Body
=strTextBody;
ExpandedSubBlockEnd.gif                }

InBlock.gif                Mail.Fields.Add(
"http://schemas.microsoft.com/cdo/configuration/smtpauthenticate""1");    //验证类型:基本验证
InBlock.gif
                Mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusername""guest"); //用户名
InBlock.gif
                Mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendpassword""password");    //密码
InBlock.gif
                SmtpMail.SmtpServer = "smtp.yourdomain.com";  //邮件发送服务器
InBlock.gif
                SmtpMail.Send( Mail);
InBlock.gif                GC.Collect();
ExpandedSubBlockEnd.gif            }

InBlock.gif            
catch
ExpandedSubBlockStart.gifContractedSubBlock.gif            
dot.gif{
InBlock.gif                
return(false);
ExpandedSubBlockEnd.gif            }

InBlock.gif            
return(true);
ExpandedBlockEnd.gif        }


不过,有人说.NET调用COM,是通过INTEROP进行的,这会使性能下降
但是我想一般站点用组件发送邮件,不会是并发数量很大吧

转载于:https://www.cnblogs.com/Heroman/archive/2004/12/06/73420.html

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值