C# 邮箱mail 发送类
没有牛B的设计模式,代码精练精练实用,功能齐全,调用简单。。全全完完为码农考虑
MailSmtpms=newMailSmtp("smtp.qq.com","1215247044","xxxx"); //可选参数 ms.SetCC("610262374@qq.com");//抄送可以多个 ms.SetBC("610262374@qq.com");//暗送可以多个 ms.SetIsHtml(true);//默认:true ms.SetEncoding(System.Text.Encoding.UTF8);//设置格式默认utf-8 ms.SetIsSSL(true);//是否ssl加密默认为false //调用函数 boolisSuccess=ms.Send("1215247044@qq.com","test","610262374@qq.com","哈哈","哈哈",Server.MapPath("~/Test.dll")); //输出结果 Response.Write(ms.Result);
代码:
usingSystem; usingSystem.IO; usingSystem.Web.UI.WebControls; usingSystem.Text; usingSystem.Net.Mail; usingSystem.Net; usingSystem.Linq; usingSystem.Text.RegularExpressions; namespaceSyntacticSugar { ///<summary> ///**描述:邮件发送 ///**创始时间:2015-6-8 ///**修改时间:- ///**作者:sunkaixuan ///</summary> publicclassMailSmtp { ///<summary> ///设置邮件编码类型 ///</summary> ///<paramname="contentEncoding"></param> publicvoidSetEncoding(EncodingcontentEncoding) { this._encoding=contentEncoding; } ///<summary> ///设置邮件正文是否为Html格式 ///</summary> ///<paramname="isHtml"></param> publicvoidSetIsHtml(boolisHtml) { this._isHtml=isHtml; } ///<summary> ///抄送 ///</summary> ///<paramname="cc"></param> publicvoidSetCC(paramsstring[]cc) { this._cc=cc; } ///<summary> ///暗送 ///</summary> ///<paramname="cc"></param> publicvoidSetBC(paramsstring[]bc) { this._bcc=bc; } ///<summary> ///是否ssl加密 ///</summary> ///<paramname="isSSL"></param> publicvoidSetIsSSL(boolisSSL) { this._smtp.EnableSsl=isSSL; } ///<summary> ///构造函数 ///</summary> ///<paramname="host"></param> ///<paramname="username">邮件账号</param> ///<paramname="password">密码</param> publicMailSmtp(stringhost,stringusername,stringpassword) { this._smtp.Host=host; this._smtp.Port=0x19; this._smtp.EnableSsl=false; this._isHtml=true; this._encoding=Encoding.UTF8; if(string.IsNullOrEmpty(username)||string.IsNullOrEmpty(password)) { this._smtp.UseDefaultCredentials=false; } else { this._smtp.Credentials=newNetworkCredential(username,password); } } ///<summary> ///发送邮件 ///</summary> ///<paramname="from">发件人邮件地址</param> ///<paramname="sender">发件人显示名称</param> ///<paramname="to">收件人地址</param> ///<paramname="subject">邮件标题</param> ///<paramname="body">邮件正文</param> ///<paramname="file">附件地址数组</param> ///<returns>bool是否成功</returns> publicboolSend(stringfrom,stringsender,stringto,stringsubject,stringbody,paramsstring[]file) { returnSend(from,sender,newstring[]{to},subject,body,file); } ///<summary> ///发送邮件 ///</summary> ///<paramname="from">发件人邮件地址</param> ///<paramname="sender">发件人显示名称</param> ///<paramname="to">收件人地址</param> ///<paramname="subject">邮件标题</param> ///<paramname="body">邮件正文</param> ///<paramname="file">附件地址数组</param> ///<returns>bool是否成功</returns> publicboolSend(stringfrom,stringsender,string[]to,stringsubject,stringbody,paramsstring[]file) { stringmailReg=@"^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$"; if(to==null) { thrownewArgumentNullException("MailSmtp.Send.to"); } if(to.Any(oit=>!Regex.IsMatch(oit+"",mailReg))) { this.Result="收件人地址不合法"; returnfalse; } if(_bcc!=null&&_bcc.Length>0) { if(_bcc.Any(oit=>!Regex.IsMatch(oit+"",mailReg))) { this.Result="暗送人地址不合法"; returnfalse; } } if(_cc!=null&&_cc.Length>0) { if(_cc.Any(oit=>!Regex.IsMatch(oit+"",mailReg))) { this.Result="抄送人地址不合法"; returnfalse; } } MailMessagemessage=newMailMessage(); //创建一个附件对象 foreach(varrinfile) { AttachmentobjMailAttachment; objMailAttachment=newAttachment(r);//发送邮件的附件 message.Attachments.Add(objMailAttachment); } message.From=newMailAddress(from,sender); message.Subject=subject; message.SubjectEncoding=this._encoding; message.Body=body; message.BodyEncoding=this._encoding; message.IsBodyHtml=this._isHtml; message.Priority=MailPriority.Normal; foreach(stringstrinto) { message.To.Add(str); } if(this._bcc!=null&&this._bcc.Length>0) { foreach(stringbinthis._bcc) { message.Bcc.Add(b); } } if(this._cc!=null&&this._cc.Length>0) { foreach(stringcinthis._cc) { message.CC.Add(c); } } try { this._smtp.Send(message); returntrue; } catch(Exceptionex) { Console.WriteLine(ex.Message); } returnfalse; } privateSmtpClient_smtp=newSmtpClient(); privateEncoding_encoding{get;set;} privatebool_isHtml{get;set;} privatestring[]_cc{get;set;} privatestring[]_bcc{get;set;} ///<summary> ///获取发送结果,成功则为空 ///</summary> publicstringResult{get;privateset;} } }
以上所述就是本文的全部内容了,希望大家能够喜欢。