博文

在asp.NET 中使用SMTP发送邮件的实现代码(2012-08-12 11:25:00)

摘要: 核心代码:
复制代码 代码如下:
public class Mail
{
#region 邮件参数
static public string accountName = System.Configuration.ConfigurationManager.AppSettings["SmtpAccountName"];
static public string password = System.Configuration.ConfigurationManager.AppSettings["SmtpAccountPW"];
static public string smtpServer = System.Configuration.ConfigurationManager.AppSettings["SmtpServer"];
static public int smtpPort = int.Parse(System.Configuration.ConfigurationManager.AppSettings["SmtpPort"]);
#endregion /// <summary>
/// 邮件发送方法一
/// </summary>
/// <param name="sendTo"></param>
/// <param name="subject"></param>
/// <param name="body"></param>
static public void SendMail(string sendTo, string subject, string body)
{
//.net smtp
System.Web.Mail.MailMessage mailmsg = new System.Web.Mail.MailMessage();
mailmsg.......

阅读全文(1077) | 评论:0

SMTP 服务器要求安全连接或客户端未通过身份验证的各个解决方案(C#)(2012-08-12 11:11:00)

摘要:    最近在做邮件发送接口 把遇到的问题和解决方法告诉大家  希望对了解邮件的人有所帮助
 
   原程序部分代码如下
  //设置邮件信息 发件人地址、收件人地址、标题、主题
  MailMessage mail = new MailMessage("xxxxxxx@sina.com", "zzzzzzz@sina.com", "标题", "主题");
  //设置邮件主题格式
  mail.BodyEncoding = Encoding.UTF8;
  //设置邮件主体格式是否为 html 格式
  mail.IsBodyHtml = false;   //验证邮箱用户名 密码
  NetworkCredential work = new NetworkCredential("xxxxxxx", "pwd");
   //验证 用户名 密码
  client.Credentials = work;   //设置邮箱smtp服务器 端口
  SmtpClient client = new SmtpClient("smtp.sina.com");

  //是否请求一起发送
  client.UseDefaultCredentials = false;
  //设置邮件发送格式
  client.DeliveryMethod = SmtpDeliveryMethod.Network;
  //安全连接设置
  client.EnableSsl = false;   client.Send(mail);
 
  错误一:
“/”应用程序中的服务器......

阅读全文(4946) | 评论:0

ASP.NET Mechanism(2012-06-25 14:00:00)

摘要:ASP.NET application -> represented by a dynamically created class -> inherited from HttpApplication -> source code of which created by parsing
contents of the global.asax file
HttpApplication determines the type of object representing the source being requested (ASP.NET page, Web service, a user control) and delegate to the handler factory
-> create an instance of the handler factory object (PageHandlerFactory for request to a page) -> creates an instance of an object representing the particular requested page......

阅读全文(408) | 评论:0

ContentPlaceHolder与Content控件(2012-06-16 11:23:00)

摘要: 定义: ContentPlaceHolder 控件:在 ASP.NET 母版页中定义内容区域。 Content控件:保存文本、标记和服务器控件以呈现给母版页中的 ContentPlaceHolder  控件。 两者关系: ContentPlaceHolder 控件在母版页中定义相对内容区域,并呈现在内容页中找到的相关的 Content  控件的所有文本、标记和服务器控件。 Content 控件使用其ContentPlaceHolderID  属性与 ContentPlaceHolder 关联。将 ContentPlaceHolderID 属性设置为母版页中相关的 ContentPlaceHolder 控件的ID属性的值。 通俗的来讲,ContentPlaceHolder 控件是个容器控件,用来存放内容,但是如果它放在母板页中,那么它的内容页就需要使用Content控件来指定ContentPlaceHolder控件(好像一个指针一样,通过 ContentPlaceHolderID 属性来指定)来放置内容。 注意: ContentPlaceHolder控件如果放在母版页中,那么它的内容页是通过Content控件来链接,是可编辑的。 但是Content控件如果放在母板页中,那么它的内容页中没有东西来对其进行链接,是不可编辑的。 举例: 母版页一的代码: [html] view plaincopyprint? <span style="font-size:18px;"><span style="font-size:13px;"><head runat="server">        <title>演示</title>        <asp:ContentPlaceHolde......

阅读全文(1832) | 评论:0

程序员人生之路(强烈推荐,分析的透彻!)(2012-02-09 13:43:00)

摘要:程序员人生之路(强烈推荐,分析的透彻!),某程序达人的人生感悟,估计没有半个甲子的时间,是绝对不可能感悟出来的。
转载自CSDN论坛:http://topic.csdn.net/u/20110323/16/16ebe2ac-bca5-49da-a050-45cf522a0828.html
原文在网上找了下:http://blog.csdn.net/b136364111/archive/2007/12/10/1927073.aspx 本文所指的开发工程师,仅指程序开发人员和以数字电路开发为主的电子工程师。
  当你选择计算机或者电子、自控等专业进入大学时,你本来还是有机会从事其它行业的,可你毕业时执迷不悟,仍然选择了开发做为你的职业,真是自做孽不可活。不过,欢迎你和我一样加入这个被其它人认为是风光无限的“白领”吧。
  如果你不是特别的与人世隔绝,我想你一定看过金老先生的名著《笑傲江湖》吧,里面有一门十分奇特的武功叫做"辟邪剑法",你看这个小说第一次看到这种功夫的练法时,我想你当时一定笑歪了牙“呵呵,真好玩!”,可是现在我很痛心的告诉你:你选择的开发工作就是你人生路上的"辟邪剑法",而你现在已经练了,并且无法再回头。

相对同时刚出校门同学从事其它行业而言优厚的薪水,以及不断学习更新的专业知识不仅仅让你感到生活的充实,更满足了你那不让外人知的虚荣心。在刚出校门的几年中,你经常回头看看被你落在后面的同学们,在内心怜悯他们的同时,你也会对自已天天加班的努力工作感到心里平衡:“有付出才会有回报”这句话在那几年中你说的最多,不管是对自已的朋友们还是自已的爱人。第二句最常说的话是对公司的领导:“不行我就走人!”,实际上你也真的走过几回。对了,在这几年中,因为你的经济条件不错,你开始买房、开始谈恋爱、结婚、开始有了自已的小孩。有时候你会对自已说再过两年就去买车。当然其中可能有许多大件是需要分期付款的,但你对前途充满了信心,你确信认为这种日子会永远的持续下去,即使不是变得更好的话。
  日子总是在这种平淡中一天天的过去,就在那么不经意间,你突然发现自已已经快30岁了,或者已经30了,莫名的,你心里会漫延着一种说不清楚的不安情绪,你好像觉得前途并非像前几年那样变得越来越......

阅读全文(3392) | 评论:6

什么是.NET应用程序域(2011-12-29 15:29:00)

摘要:程序集(Assemble):是一个由类型定义、数据文件和资源文件组成的逻辑集合。每个程序集都包含一个程序集清单,该清单通常被附加在某个文件头上,也可以设置单独建立一个文件来包含该清单。 应用程序域(AppDomain):是CLR中提供代码运行范围、错误隔离和安全隔离的逻辑单元,功能类似于操作系统的进程。 一个操作系统进程可以运行一个或多个应用程序域; 应用程序域的创建和销毁所需的开销,相对于操作系统进程较小; 但是,和应用程序进行一样,应用程序域之间的数据共享相当困难。   ------------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------------     什么是.NET应用程序域   在.NET CMS平台下,程序集并没有直接承载在进程中。实际上.NET可执行程序承载在进程的一个逻辑分区中,称为.NET应用程序域。   可见,一个进程可以包含多个应用程序域,每一个应用程序域中承载一个.NET可执行程序,这样的好处如下:   1、应用程序域为承载的应用程序提供了深度隔离。如果进程中一个应用程序域失败了,其他的应用程序域也能保持正常。   2、和一个完整的进程相比,应用程序域的CPU和内存占用要小的多。因此CLR加载和卸载应用程序域比起完整的进程来说也快的多。   3、应用程序域是.NET平台操作系统独立性的关键特性。这种逻辑分区将不同操作系统加载可执行程序的差异抽象化了。   AppDomain的主要成员:   UnLoad():该静态方法在进程中卸载指定的应用程序域。   CreateDomain():该静态方法在当前进程中创建一个新的应用程序域。由于CLR能够根据需要创建应用程序域,所以必须调用这个方法的机会很少。   GetAssemblies():获取已加载到此应用程序域中的.NET CMS程序集。   BaseDirectory:获取基目录,该目录用于探测相关的程序集。   ExecuteAssembly()......

阅读全文(1672) | 评论:0

StringCollection FAQ [C#, BCL](2011-07-01 16:41:00)

摘要:  StringCollection FAQ [C#, BCL] Updated on Monday, March 21, 2005 Written by Allen Lee Q:如何使用StringCollection[1]?
 
A:通常我们有三种方法来访问StringCollection里面的string元素:  
// Code #01 StringCollection sc = new StringCollection();
sc.AddRange(textBox1.Lines); // StringCollection used together with StringEnumerator.
StringEnumerator se = sc.GetEnumerator();
while (se.MoveNext())
{
    Console.WriteLine(se.Current);
} // 'foreach' syntax used.
foreach(string str in sc)
{
    Console.WriteLine(str);
} // 'for' syntax used.
for(int i = 0; i < sc.Count; i++)
{
    Console.WriteLine(sc[i]);
}
 
Q:与ArrayList相比,StringCollection有什么优势?
 
A:首先让我们来看看如下代码:  
// Code #02 // StringCollection used for Strings operation.
StringCollection sc = new StringCollection();......

阅读全文(2327) | 评论:0

.net中的WMI编程(二):WMI中的WQL语言和WQL的测试工具(2011-06-29 11:30:00)

摘要:今天临晨本人写了一篇有关.net中WMI编程的入门文章,名字是《 .net中的WMI编程(一):WMI介绍及简单应用》,如果你对WMI还不太熟悉,请先阅读那一篇,以便有个大概的印象,网址是:http://blog.csdn.net/zhoufoxcn/archive/2008/01/14/2042697.aspx。
 
昨天给大家展示的例子都比较简单(我个人觉得),不过还是有不少朋友私底下问我为什么有些语句需要那么写,还有人问我怎么知道那样写,以及怎么知道查询结果中会有那些字段名(既然叫WQL,我就称之为字段了)。所以我觉得有必要介绍一下WMI中的查询语言了。
 
WQL就是WMI中的查询语言,WQL的全称是WMI Query Language,简称为WQL,翻译成中文好像可以成为Windows管理规范查询语言。熟悉SQL语言的朋友会感觉它和SQL非常相似。
 
WQL其实非常简单,它有如下特点:
1、每个WQL语句必须以SELECT开始;
2、SELECT后跟你需要查询的属性名(我刚才对应SQL将其称之为字段名了),也可以像SQL一样,以*表示返回所有属性值;
3、FROM关键字;
4、你要查询的类的名字;
5、另外,如果你想精确查询结果还可以加上WHERE条件从句。比如某个类有Enable属性,你可以在查询的时候加上WHERE ENABLE=true。
 
如以下的都是正确的WQL语句:   Select * From Win32_LogicalDisk where drivetype=3    ’‘’‘查询所有硬盘分区
SELECT * FROM Win32_share  ’‘查询所有共享目录
SELECT * FROM Win32_NetworkAdapterConfiguration WHERE DHCPEnabled=TRUE
SELECT Description FROM Win32_Account WHERE Name='Administ......

阅读全文(2632) | 评论:0

.net中的WMI编程(一):WMI介绍及简单应用(2011-06-29 11:29:00)

摘要:前言: 由于.net的某些特点使它脱离了操作系统底层,所以如果我们想获得一些底层的操作系统信息的时候比较困难,经常需要DllImport技术,这对一些对C/C++不熟悉的程序员来说简直是一个梦魇(对于我来说也是如此,虽然大学里学习过C/C++,可是我从来没有用过它们做过任何实际的应用程序开发),所以能通过一些简单的办法处理的,我都绕过去了,很多时候我喜欢借助命令行来执行一些命令,然后截取输出流,处理之后返回我需要的结果,这个也是比较痛苦的。经常访问我的博客的朋友应该对我的一篇文章很熟悉,或者从别的地方看到过,因为它被众多网站转载了,这篇文章就是《用C#获取CPU编号、硬盘编号等系统有关环境、属性》,网址是:http://blog.csdn.net/zhoufoxcn/archive/2007/03/20/1534949.aspx。
 
其实,还有一个为大家所陌生、但功能却又十分强大的工具,它就是WMI。WMI(Windows管理规范:Windows Management Instrumentation)是Microsoft基于Web的企业管理(WBEM)的实现,同时也是一种基于标准的系统管理接口。WMI最早出现在Microsoft Windows 2000系统上,但它同样可以安装在Windows NT 4和Windows 9x计算机上。WMI是一种轻松获取系统信息的强大工具。利用它但是由于缺少WMI的介绍资料和学习资料(特别是中文的,因为国内大部分程序员的E文水平都比较凑合,呵呵,本人也是相当凑合),所以知道WMI的不多,能运用的就少之又少了。
 
在WMI中有一种查询语言,类似于SQL语言,这种语言叫做WQL(WMI Query Language),实际上是标准SQL的一个子集加上了WMI的扩展。在接下来的教程中我会给大家演示一些WQL的例子。
 
用js或者vbs都可以通过WMI来获取系统信息。下面是一个用vbs编写的获取系统序列号的小程序,你可以把它复制到一个文本文件里,然后保存为文件为.vbs的文件,然后运行:   Set SNSet = GetObject("winmgmts:").InstancesOf ("Win32_Oper......

阅读全文(2284) | 评论:0

[转]System.Management命名空间(2011-06-29 11:12:00)

摘要:提供对大量管理信息和管理事件集合的访问,这些信息和事件是与根据 Windows 管理规范 (WMI) 结构对系统、设备和应用程序设置检测点有关的。应用程序和服务可以使用从 ManagementObjectSearcher 和 ManagementQuery 派生的类,查询感兴趣的管理信息(例如在磁盘上还剩多少可用空间、当前 CPU 利用率是多少、某一应用程序正连接到哪一数据库等等);或者应用程序和服务可以使用 ManagementEventWatcher 类预订各种管理事件。这些可访问的数据可以来自分布式环境中托管的和非托管的组件。
 
Management命名空间里面包括大量的类,说实话,有许多类我都没有用过,下面我主要介绍一下几个比较常用的类。  
类名
  说明
    ConnectionOptions
  用于设置wmi连接远端计算机时的域名、用户名和密码等
    ManagementScope
  用于连接远端计算机。需要设置连接的wmi命名空间和ConnectionOptions
    InvokeMethodOptions
  调用wmi相关方法时的一些选项,比如调用服务的Start时的服务开启的超时等设置
    ManagementBaseObject
  包含管理对象的基本元素。它用作更具体的管理对象类的基类。
    ManagementClass
  表示公共信息模型 (CIM) 管理类。管理类是一个 WMI 类,如 Win32_LogicalDisk 和 Win32_Process
    ManagementException
  表示管理异常。
    ManagementObject
  表示w......

阅读全文(1895) | 评论:0