/*仅个人的理解 F8*/
摘要:
介绍如何使用DNN中提供的发送Mail的功能,并简单介绍它的实现原理。
1. 在DNN中使用该功能
使用该功能非常的简单,只需要在你需要发送mail的地方,调用下面函数即可:
DotNetNuke.Services.Mail.Mail.SendMail()
该函数将为你把mail发送出去。函数的参数如下(拷贝自源码):
''' <summary>
''' <summary>Send a simple email.</summary>
''' </summary>
''' <param name="MailFrom"></param>发件人的mail地址
''' <param name="MailTo"></param>收件人的mail地址,用分号分割
''' <param name="Bcc"></param>格式同mailto
''' <param name="Subject"></param>邮件标题
''' <param name="Body"></param>邮件主体
''' <param name="Attachment"></param>附件路径
''' <param name="BodyType"></param>主体的类型html或者text
''' <param name="SMTPServer"></param>邮件服务器地址ip或其他
''' <param name="SMTPAuthentication"></param>认证方式
0匿名1 basic用户名密码 2 NTLM
''' <param name="SMTPUsername"></param>用户名
''' <param name="SMTPPassword"></param>密码
''' <returns></returns>
''' <remarks></remarks>
''' <history>
''' [cnurse] 09/29/2005 Moved to Mail class
''' </history>
例如:
DotNetNuke.Services.Mail.Mail.SendMail("dnn@mail.com", "F8@mail.com", "", "test dnn mail", "ha ha", "", "text", "", "", "", "")
参数SMTPServer、SMTPAuthentication、SMTPUsername、SMTPPassword可以通过host settting进行设置,这样在调用函数时就可以不传递了,如下图:
DotNetNuke.Services.Mail.Mail.SendMail()函数中将会判断SMTPServer、SMTPAuthentication、SMTPUsername、SMTPPassword这4个参数,如果为空(“”),便从hostsetting中获取相应的值。
2. 实现原理
实现原理非常简单,主要借助.net的两个类进行实现:System.Web.Mail.MailMessage和System.Web.Mail.SmtpMail。
整个mail邮件的信息通过System.Web.Mail.MailMessage实例进行封装。
mail服务器的信息通过System.Web.Mail.SmtpMail.SmtpServer进行封装
利用System.Web.Mail.SmtpMail.Send(MailMessage实例),将mail发送出去。
如果需要System.Web.Mail.MailMessage和System.Web.Mail.SmtpMail的详细信息,请参考MSDN。
参考:
在.NET中使用SMTP发送邮件 (海天一鸥)
http://sgsoft.cnblogs.com/archive/2005/03/21/123030.html