使用.net2.0自带的Mail发送邮件

天气:sunny 心情:心情指数:3

由于项目的需要,要实现邮件内容由页面编写,并通过邮件,将写好的内容发送到指定邮箱的功能。在之前的ASP,借助于JMail组件可以很容易实现。后来尝试使用.net的Jmail组件解决,但邮件内容中总会被加入标识,不能使用。于是想采用.net中自带的Mail类来实现这些功能。

初步实现了想法,但使用的是不需要身份验证,转到正式机上之后,布署完成之后的邮箱是需要身份验证的,这就致使原来的代码无法使用。查找相关的资料之后,在CSDN上看到一篇文章,类似于这种方案的解决,加之实现,成功解决了问题。

来看看相关的代码:

//其他引用代码就不列出来了,只列出关键的。
using System.Web.Mail;

MailMessage mm = new MailMessage();    //实例化MailMessage对象
mm.From = MailInfo.FromName;
mm.To = MailInfo.Receiver;
mm.Subject = "邮件的标题";
mm.BodyFormat = MailFormat.Html;   //邮件格式,有HTML与Text两种
mm.Body = "这里是邮件的正文内容,配合上面的MailFormat的格式编写内容";
mm.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate",1);
mm.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusername",MailInfo.UserName);
mm.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendpassword",MailInfo.UserPwd);
SmtpMail.SmtpServer = MailInfo.SmtpServer;    //指定发件服务器的地址
try{
    SmtpMail.Send(mm);      //执行发送操作
}catch(Exception ex){
    ErrLog.Writeln(ex.Message);      //发送失败,将失败的原因记录到日志中
}

其中最主要的解决身份验证的代码是中间的mm.Fields.Add三句中,都是调用什么就不知道了,反正可以正常发邮件了,嘿嘿。

再其中,MailInfo这个是我自定义获取邮件服务器参数的对象。

日志引用地址[]: http://www.ubbcn.com/flog/track.asp?postID=41

1条评论

unregister
hero4u
2008-2-4 14:45:33
您好了,我是一个asp.net 2005新手学习如何试用IIS smtp发送邮件了。在网上找到代码后发送成功,但是不知道为什么会被126系统当作垃圾邮件处理了。
是哪里的设置出现了问题么?
或者如何设置才能不被当作垃圾邮件呢?
该日志已锁定
Copyright © 2004-2007 uBBcn.Com 版权所有 Powered by 帅青蛙
感谢huangna提供空间 感谢Mojojo的设计
 闽ICP备05000605号