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;}
}
}
以上所述就是本文的全部内容了,希望大家能够喜欢。