微软企业库中的日志记录模块中有个Email Trace Listener。对于将网站部署到异地的应用来讲,这是一个非常有效的功能。因为我们可以通过电子邮件查看日志,进而了解我们开发的程序错误出现在何处,等等。

通过Reflector查看Email Trace Listener的源码,发现它是采用.NET中内置的SmtpClient发送邮件的。

   1: public virtual void SendMessage(MailMessage message)
   2: {
   3:     new SmtpClient(this.configurationData.SmtpServer, this.configurationData.SmtpPort).Send(message);
   4: }

经过查资料,发现SmtpClient默认是通过读取配置文件中的system.net配置节中的mailSettings配置节来发送邮件的。

例如:

   1: <system.net>
   2:   <mailSettings>
   3:     <smtp deliveryMethod="Network" from="satan_1st.student@sina.com">
   4:       <network defaultCredentials="false" host="smtp.sina.com" userName="yourusername" password="yourpassword" port="25" />
   5:     </smtp>
   6:   </mailSettings>
   7: </system.net>

这样就可以采用配置节中的身份验证机制连接SMTP服务器了。

当然,这样就将程序发布到服务器上,难免会泄露我们的邮件账户,我们可以用Visual Studio自带的工具aspnet_regiis对该配置节进行加密。

首先,在web.config中添加machineKey配置节,例如:

   1: <machineKey validationKey="AF436A80E46606B98D1F92FB7869D799E63CB1E0FA5E0E9EF8B3CCD0305DBE776ACBC7A7D829768F31427095CF22664CCE15793B492BE1312C1FD2AB9CDE4C45"
   2:   decryptionKey="72204A02EDFEC87293D0D54F1C5C71322F5188B96FAA446F" validation="SHA1" />

可以用这个网站生成machineKey配置。

然后,打开Visual Studio的控制台,输入aspnet_iis可以看到具体的帮助。

关于受保护的配置节有关的消息,可在msdn中查阅到更具体的信息,这里给出一个连接演练:使用受保护的配置节

转载于:https://www.cnblogs.com/HCOONa/archive/2009/10/27/1590891.html

让微软企业库中的Email Trace Listener使用需要身份验证的SMTP服务器相关推荐

  1. 关于微软企业库中依赖注入容器Unity两种生成对象的实现

    看了很多牛人关于Unity的文章后,深有感触 下面简单介绍下UnityContainer 怎么注册和生成具体类的对象 假设我们一个命名空间为UnityContainerText的项目中拥有一个接口和实 ...

  2. 在数据库访问项目中使用微软企业库Enterprise Library,实现多种数据库的支持

    在我们开发很多项目中,数据访问都是必不可少的,有的需要访问Oracle.SQLServer.Mysql这些常规的数据库,也有可能访问SQLite.Access,或者一些我们可能不常用的PostgreS ...

  3. 使用Microsoft EnterpriseLibrary(微软企业库)日志组件把系统日志写入数据库和xml文件...

    这里只是说明在项目中如何配置使用微软企业库的日志组件,对数据库方面的配置请参考其他资料. 1.在项目中添加Microsoft.Practices.EnterpriseLibrary.Data.dll. ...

  4. [EntLib]微软企业库5.0 学习之路——第五步、介绍EntLib.Validation模块信息、验证器的实现层级及内置的各种验证器的使用方法——上篇...

    本文是为后面的学习之路做铺垫,简单介绍下企业库中的Validation模块的一些相关知识,包括Validation模块的简介.用途.使用方法.默认提供的多种验证器的介绍等. 一.简介及用途 在实际的项 ...

  5. 基于微软企业库的AOP组件(含源码)

    软件开发,离不开对日志的操作.日志可以帮助我们查找和检测问题,比较传统的日志是在方法执行前或后,手动调用日志代码保存.但自从AOP出现后,我们就可以避免这种繁琐但又必须要实现的方式.本文是在微软企业库 ...

  6. [EntLib]微软企业库5.0 学习之路——第七步、Cryptographer加密模块简单分析、自定义加密接口及使用—上篇...

    在完成了后,今天开始介绍企业库中的新模块:Cryptographer(加密模块),这个模块在日常的大多数项目的作用非常重要,例如:网站会员密码.身份证号.网站配置等,通过对信息进行加密可以保证项目数据 ...

  7. (转)[EntLib]微软企业库5.0 学习之路——第十步、使用Unity解耦你的系统—PART2——了解Unity的使用方法(1)...

    原文地址:http://www.cnblogs.com/kyo-yo/archive/2010/11/01/Learning-EntLib-Tenth-Decoupling-Your-System-U ...

  8. 微软企业库4.1学习笔记(十)企业库的设计

    在设计整个企业库的过程中,使用了一系列的最佳实践.下面列出一些里面的最佳实践: 在核心库中使用了Common模块 使用了统一的命名约定和统一的版本 在设计的过程中使用单元测试 在所有模块中包含基础结构 ...

  9. [EntLib]微软企业库5.0 学习之路——第十步、使用Unity解耦你的系统—PART5——使用Unity自身的拦截器...

    在前一篇文章中,介绍了如何使用Unity来接管PIAB进行拦截操作,而Unity自身也提供了类似于ICallHandler的拦截处理程序--IInterceptionBehavior,今天这篇文章就是 ...

最新文章

  1. 赠书 | 元宇宙:开启未来世界的六大趋势
  2. 关于“IE下无法查看此样式表,因为它的源页面不在同一个域中”的问题
  3. Java堆空间,本机堆和内存问题
  4. apktool(android app逆向)
  5. django发送邮件结合itsdangerous+celery+redis
  6. shell表达语句中,各种符号的释义 用法
  7. 9.屏幕宽高比判断(Screen.width,Screen.height)
  8. c语言中char的赋值
  9. 菜鸡的求学之路-JavaScript
  10. Smith预估控制实验 simulink模型
  11. 深度学习笔记-吴恩达
  12. 网易vip邮箱和TOM VIP邮箱的作用有什么不同?
  13. pdc-admin 学习心得
  14. javaweb基于ssm的小区洗衣店管理系统
  15. 中兴以太网板see服务器地址,see
  16. tezos智能合约的合约间互相call
  17. Ubuntu18.04下双网卡内外网设置
  18. 2022.10.9 英语背诵
  19. spring+ehcache实现页面整体缓存和页面局部缓存
  20. Perl特殊变量(flw等翻译)

热门文章

  1. MySQL安装叫重启_MySQL重启命令和MySQL数据库安装目录的操作过程
  2. java直接引用_Java虚拟机 - 符号引用和直接引用理解
  3. 浅拷贝 python_python中的浅拷贝和深拷贝
  4. PostgreSQL源码学习(1)--PG13代码结构
  5. market1501正则表达式提取行人id和相机id
  6. 5-2计算机视觉的常见概念
  7. linux升级gnome,linux – Gnome shell特权升级
  8. linux内核定时器死机,浅析linux内核中timer定时器的生成和sofirq软中断调用流程
  9. Matlab优化求解器中的Tolerances and Stopping Criteria
  10. wpf tabcontrol嵌套自动跳转上层_Python Selenium包应对嵌套网页的方法和简单 js 脚本运行的实现...