zoukankan      html  css  js  c++  java
  • Microsoft .NET Framework 2.0实现发送邮件(Email)总结

    编辑器加载中...在 .NET Framework 2.0的System.Net.Mail命名空间中新增的MailMessage类和SmtpClient类使我们很容易发送Email,SmtpClient类提供了同步和异步2种方式发送邮件. 同步发送邮件由于比较简单,请看代码 Code MailMessage mm = new MailMessage ( ); //发件人 mm.From = new MailAddress ( "aierong@126.com" , "aierong_126" ); //收件人(可以是多个) mm.To.Add ( new MailAddress ( "aierong@qq.com" ) ); mm.To.Add ( new MailAddress ( "aierong@163.com" ) ); //抄送 (CC)(可以是多个) mm.CC.Add ( new MailAddress ( "aierong@qq.com" ) ); mm.CC.Add ( new MailAddress ( "aierong@qq.com" ) ); //密件抄送 (BCC)(可以是多个) mm.Bcc.Add ( new MailAddress ( "114298@qq.com" ) ); mm.Bcc.Add ( new MailAddress ( "10249102@qq.com" ) ); //主题 mm.Subject = "邮件的主题1"; //邮件正文 mm.Body = "body"; //附件(可以是多个) mm.Attachments.Add ( new Attachment ( @"D:\Access.zip" ) ); mm.Attachments.Add ( new Attachment ( @"D:\SetupReport.msi" ) ); SmtpClient sc = new SmtpClient ( ); //设置SMTP主机的名称或IP地址 sc.Host = "smtp.126.com"; string User = ""; string PassWord = ""; //设置用于验证发件人身份的凭据 sc.Credentials = new System.Net.NetworkCredential ( User , PassWord ); sc.Send ( mm ); MessageBox.Show ( "ok" ); 要是邮件容量比较大,可以设置SmtpClient.Timeout属性(默认值为100 秒),以免超时。 当然,我们还可以用配置文件来指定SmtpClient对象的默认主机、端口和凭据值等属性。请看下面配置 Code 异步发送邮件: 以上代码是基于同步的发送方式,利用SmtpClient.SendAsync方法可以很方便实现异步发送邮件 SendAsync方法描述如下: public void SendAsync ( MailMessage message, Object userToken ) 参数 message 包含要发送的消息的 MailMessage。 userToken 一个用户定义对象,此对象将被传递给完成异步操作时所调用的方法。 代码 Code MailMessage mm = new MailMessage ( ); //发件人 mm.From = new MailAddress ( "aierong@126.com" , "aierong_126" ); //收件人(可以是多个) mm.To.Add ( new MailAddress ( "aierong@qq.com" ) ); //主题 mm.Subject = "邮件的主题1"; //邮件正文 mm.Body = "body"; //附件(可以是多个) mm.Attachments.Add ( new Attachment ( @"D:\Access.zip" ) ); SmtpClient sc = new SmtpClient ( ); //SmtpClient.SendCompleted事件,在异步电子邮件发送操作完成时调用 sc.SendCompleted += new SendCompletedEventHandler ( sc_SendCompleted ); //设置SMTP主机的名称或IP地址 sc.Host = "smtp.126.com"; string User = "aierong"; string PassWord = "aie100le"; //设置用于验证发件人身份的凭据 sc.Credentials = new System.Net.NetworkCredential ( User , PassWord ); //异步发送邮件 sc.SendAsync ( mm , "test message" ); void sc_SendCompleted ( object sender , AsyncCompletedEventArgs e ) { if ( e.Error == null ) { MessageBox.Show ( "发送成功" ); //显示出来用户定义对象"test message" MessageBox.Show ( e.UserState.ToString() ); } else { MessageBox.Show ( e.Error.Message ); } } http://aierong.cnblogs.com Sql Server2005 Transact-SQL 新兵器学习总结之-总结 MS SQL数据库备份和恢复存储过程(加强版本) sql server中分布式查询随笔(链接服务器(sp_addlinkedserver)和远程登录映射(sp_addlinkedsrvlogin)使用小总结) ASP.NET2.0国际化/本地化应用程序的实现总结(多语言,多文化页面的实现) WAP开发资料站(最新更新) 自定义格式字符串随笔 (IFormattable,IFormatProvider,ICustomFormatter三接口的实现) Mcad学习笔记之异步编程(AsyncCallback 委托,IAsyncResult接口,BeginInvoke方法,EndInvoke方法的使用小总结) Mcad学习笔记之通过反射调用類的方法,屬性,字段,索引器(2種方法) Mcad学习笔记之序列化(2进制和Soap序列化) Mcad学习笔记之委托再理解(delegate的构造器,BeginInvoke,EndInvoke,Invoke4个方法的探讨) WinForm开发,窗体显示和窗体传值相关知识总结 Mcad学习笔记之Microsoft Windows服务 copy某目錄下的所有的目錄和文件到目的目錄(目錄數據備份) ASP.NET状态管理之一(概括篇) 我的系列文章 A.Sql Server2005 Transact-SQL 新兵器学习 B.MCAD学习 C.代码阅读总结 D.ASP.NET状态管理 E.DB(数据库) F.WAP G.WinForm H.Flex 我的好文推荐 FlexAir开源版-全球免费多人视频聊天室,免费网络远程多人视频会议系统((Flex,Fms3联合开发)) Sql Server2005 Transact-SQL 新兵器学习总结之-总结 MS SQL数据库备份和恢复存储过程(加强版本) sql server中分布式查询随笔(链接服务器(sp_addlinkedserver)和远程登录映射(sp_addlinkedsrvlogin)使用小总结) ASP.NET2.0国际化/本地化应用程序的实现总结(多语言,多文化页面的实现) WAP开发资料站(最新更新) 自定义格式字符串随笔 (IFormattable,IFormatProvider,ICustomFormatter三接口的实现) Mcad学习笔记之异步编程(AsyncCallback 委托,IAsyncResult接口,BeginInvoke方法,EndInvoke方法的使用小总结) Mcad学习笔记之通过反射调用類的方法,屬性,字段,索引器(2種方法) Mcad学习笔记之序列化(2进制和Soap序列 化) Mcad学习笔记之委托再理解(delegate的构造器,BeginInvoke,EndInvoke,Invoke4个方法的探讨) ASP.NET状态管理之一(概括篇) Flex,Fms学习笔记 希望上面提到的知识对您有所提示,同时欢迎交流和指正 作者:aierong 出处:http://www.cnblogs.com/aierong 贴子以"现状"提供且没有任何担保,同时也没有授予任何权利! 本文版权归作者所有,欢迎转载! 原创技术文章和心得,转载注明出处!这也是对原创者的尊重!

  • 相关阅读:
    leetcode 122. Best Time to Buy and Sell Stock II
    leetcode 121. Best Time to Buy and Sell Stock
    python 集合(set)和字典(dictionary)的用法解析
    leetcode 53. Maximum Subarray
    leetcode 202. Happy Number
    leetcode 136.Single Number
    leetcode 703. Kth Largest Element in a Stream & c++ priority_queue & minHeap/maxHeap
    [leetcode]1379. Find a Corresponding Node of a Binary Tree in a Clone of That Tree
    正则表达式
    十种排序算法
  • 原文地址:https://www.cnblogs.com/Leo_wl/p/2301584.html
Copyright © 2011-2022 走看看