asp.net配置web.config发电子邮件详解

这篇文章主要讲叙了,如何通过配置文件(web.config)实现邮件发送的相关配置,以及如何根据配置发送电子邮件。

适用的框架:asp.netframework 2.0/.net framework3.0/.net framework3.5

在web.config里设置.net framework的网络连接

<!--more-->

XML/HTML代码
  1. <system.net>
  2. </system.net>

如下:设置stmp邮件发送的配置

XML/HTML代码
  1. //父元素:configuration(提供所有名称空间的配置)
  2. <system.net>
  3. //这里还可以加入如下元素的设置
  4. //authenticationModules:设置用来验证WEB请求的模块
  5. //connectionManagement:设置WEB服务器最大连接数
  6. //defaultProxy:设置http的代理服务器
  7. //mailSettings:配置smtp
  8. //requestCaching:控制网络请求缓存机制
  9. //settings:为System.NET配置基本网络选项
  10. //<webRequestModules>元素(网络设置):指定模块从WEB服务器请求信息。
  11. <mailSettings>
  12. //deliveryMethod设置邮件发送方式,这里是网络形式
  13. <smtpdeliveryMethod="Network"from="[email protected]">
  14. //host邮件发送服务器
  15. //userName发送邮件时,用来进行身份验证的用户名
  16. //password如下验证时的密码
  17. <networkhost="smtp.yyy.com"userName="[email protected]"password="zzzzzzz"/>
  18. </smtp>
  19. </mailSettings>
  20. </system.net>

以编程的方式获取web.config里的smtp配置

NetSectionGroup类

命名空间
System.Net.Configuration:为应用程序提供了以编程方式访问和更新配置文件System.Net命名空间下的设置的类。
程序集
System

定义:
public sealed class NetSectionGroup : ConfigurationSectionGroup

说明:
这个类提供了以程序方式访问存储在配置文件里的信息。
这个类和网络设置文档里的system.net元素(网络设置)相对应。
这部分的为下列名称空间提供配置设置:
System.Net
System.Net.Cache
System.Net.Mail

在程序里读取configuration/system.net/mailSettings/stmp配置

C#代码
  1. //NetSectionGroup在上面已经介绍过了
  2. //GetSectionGroup从指定的配置文件获取system.net的配置
  3. //WebConfigurationManager.OpenWebConfiguration
  4. //打开应用程序根目录下的web.config生成System.Configuration.Configuration对象实例
  5. SmtpSectioncfg=NetSectionGroup.GetSectionGroup(WebConfigurationManager.OpenWebConfiguration("~/web.config")).MailSettings.Smtp;

发送电子邮件

C#代码
  1. try{
  2. //实例化一个邮件消息对象
  3. MailMessageemail=newMailMessage(cfg.From,mailto);
  4. email.IsBodyHtml=true;
  5. email.Body="要发送的邮件内容,上面已经设置可以支持html内容,例外还可以通过指定email.BodyEncoding属性设置邮件内容的编码";
  6. email.Subject="邮件主题,通过指定email.SubjectEncoding属性设置邮件主题的编码";
  7. //实例化smtp客服端对象,用来发送电子邮件
  8. System.Net.Mail.SmtpClientstmp=newSmtpClient(cfg.Network.Host);
  9. //设置是否需要发送是否需要身份验证,如果不需要下面的credentials是不需要的
  10. stmp.UseDefaultCredentials=true;
  11. stmp.Credentials=newSystem.Net.NetworkCredential(cfg.Network.UserName,cfg.Network.Password);
  12. //发送邮件
  13. stmp.Send(email);
  14. }
  15. catch(Exceptionex)
  16. {
  17. }

你可能感兴趣的:(asp.net)