|
代码
/// <summary>
/// 发送邮件通用类
/// </summary>
public class uMail
{
#region 基本属性
/// <summary>
/// 邮件优先级设置
/// </summary>
public enum PriorityEnum
{
/// <summary>
/// 优先级高
/// </summary>
High,
/// <summary>
/// 优先级低
/// </summary>
Low,
/// <summary>
/// 优先级普通
/// </summary>
Normal,
};
private string _Host;
/// <summary>
/// 邮件主机地址
/// </summary>
public string Host
{
set { _Host = value; }
get { return _Host; }
}
private int _Port;
/// <summary>
/// 邮件主机端口
/// </summary>
public int Port
{
set { _Port = value; }
get { return _Port; }
}
private string _ReplyTo;
/// <summary>
/// 邮件回复地址
/// </summary>
public string ReplyTo
{
set { _ReplyTo = value; }
get { return _ReplyTo; }
}
private string _MailAddress;
/// <summary>
/// 发送邮件的地址
/// </summary>
public string MailAddress
{
set { _MailAddress = value; }
get { return _MailAddress; }
}
private string _MailName;
/// <summary>
/// 登录邮件主机的用户名
/// </summary>
public string MailName
{
set { _MailName = value; }
get { return _MailName; }
}
private string _MailPassword;
/// <summary>
/// 登录邮件主机的用户密码
/// </summary>
public string MailPassword
{
set { _MailPassword = value; }
get { return _MailPassword; }
}
private string _MailRealName;
/// <summary>
/// 发件人名称
/// </summary>
public string MailRealName
{
set { _MailRealName = value; }
get { return _MailRealName; }
}
private PriorityEnum _Priority;
/// <summary>
/// 邮件的优先等级(High,重要性高;Normal,重要性普通;Low,重要性低)
/// </summary>
public PriorityEnum Priority
{
set { _Priority = value; }
get { return _Priority; }
}
private string _MailTo;
/// <summary>
/// 邮件接收人(多人接收时,请使用;分割接收人)
/// </summary>
public string MailTo
{
set { _MailTo = value; }
get { return _MailTo; }
}
private string _MailCc;
/// <summary>
/// 邮件抄送人(多人接收时,请使用;分割接收人)
/// </summary>
public string MailCc
{
set { _MailCc = value; }
get { return _MailCc; }
}
private string _MailBcc;
/// <summary>
/// 邮件密送人(多人接收时,请使用;分割接收人)
/// </summary>
public string MailBcc
{
set { _MailBcc = value; }
get { return _MailBcc; }
}
public string _subject;
/// <summary>
/// 邮件主旨
/// </summary>
public string Subject
{
set { _subject = value; }
get { return _subject; }
}
public string _body;
/// <summary>
/// 邮件内容
/// </summary>
public string Body
{
set { _body = value; }
get { return _body; }
}
private string _attachUrl;
/// <summary>
/// 附件地址,多附件请使用;分割
/// </summary>
public string AttachUrl
{
set { _attachUrl = value; }
get { return _attachUrl; }
}
#endregion
/// <summary>
/// 生产邮件发送端
/// </summary>
/// <returns></returns>
private SmtpClient MarkSmtpClient()
{
SmtpClient myCilent = new SmtpClient();
if (string.IsNullOrEmpty(Host))
{
if (ConfigurationManager.AppSettings["Host"] == null)
{
throw (new Exception("配置文件中没有配置Host的值,请在调用方法的时候传递Host值"));
}
myCilent.Host =ConfigurationManager.AppSettings["Host"].ToString();
}
else
{
myCilent.Host = Host;
}
if (Port != 0)
{
myCilent.Port = Port;
}
else
{
if (ConfigurationManager.AppSettings["Port"] == null)
{
throw (new Exception("配置文件中没有配置Port的值,请在调用方法的时候传递Port值"));
}
myCilent.Port = int.Parse(ConfigurationManager.AppSettings["Port"].ToString());
}
if (string.IsNullOrEmpty(this.MailName))
{
if (ConfigurationManager.AppSettings["MailName"] == null)
{
throw (new Exception("配置文件中没有配置MailName的值,请在调用方法的时候传递MailName值"));
}
MailName = ConfigurationManager.AppSettings["MailName"].ToString();
}
if (string.IsNullOrEmpty(this.MailPassword))
{
if (ConfigurationManager.AppSettings["MailPassword"] == null)
{
throw (new Exception("配置文件中没有配置MailPassword的值,请在调用方法的时候传递MailPassword值"));
}
MailPassword = ConfigurationManager.AppSettings["MailPassword"].ToString();
}
myCilent.UseDefaultCredentials = false;
myCilent.EnableSsl = false;
myCilent.DeliveryMethod = SmtpDeliveryMethod.Network;
myCilent.Credentials = new System.Net.NetworkCredential(MailName, MailPassword);
return myCilent;
}
/// <summary>
/// 产生邮件地址
/// </summary>
/// <param name="MailPath"></param>
/// <returns></returns>
private MailAddress MarkMailAddress(string MailPath,string RealName)
{
MailAddress myAddress = new MailAddress(MailPath, RealName);
return myAddress;
}
/// <summary>
/// 产生消息体
/// </summary>
/// <returns></returns>
private MailMessage MarkMailMessage()
{
MailMessage myMessage = new MailMessage();
if (string.IsNullOrEmpty(MailAddress))
{
if (ConfigurationManager.AppSettings["MailAddress"] == null)
{
throw (new Exception("配置文件中没有配置Host的值,请在调用方法的时候传递Host值"));
}
MailAddress = ConfigurationManager.AppSettings["MailAddress"].ToString();
}
if (string.IsNullOrEmpty(MailRealName))
{
if (ConfigurationManager.AppSettings["MailRealName"] == null)
{
throw (new Exception("配置文件中没有配置Host的值,请在调用方法的时候传递Host值"));
}
MailRealName = ConfigurationManager.AppSettings["MailRealName"].ToString();
}
myMessage.From = MarkMailAddress(MailAddress,this.MailRealName);
//邮件接收人
if (string.IsNullOrEmpty(MailTo.Trim()))
{
throw (new Exception("请设置邮件接收人!"));
}
if (this.MailTo.IndexOf(";") > 0)
{
foreach (string mailAddress in MailTo.Split(';'))
{
if (!string.IsNullOrEmpty(mailAddress.Trim()))
{
myMessage.To.Add(mailAddress);
}
}
}
else
{
myMessage.To.Add(MailTo);
}
//邮件抄送人
if (!string.IsNullOrEmpty(MailCc.Trim()))
{
if (this.MailCc.IndexOf(";") > 0)
{
foreach (string mailAddress in MailCc.Split(';'))
{
if (!string.IsNullOrEmpty(mailAddress.Trim()))
{
myMessage.CC.Add(mailAddress);
}
}
}
else
{
myMessage.CC.Add(MailCc);
}
}
//邮件密送人
if (!string.IsNullOrEmpty(this.MailBcc.Trim()))
{
if (this.MailBcc.IndexOf(";") > 0)
{
foreach (string mailAddress in MailBcc.Split(';'))
{
if (!string.IsNullOrEmpty(mailAddress.Trim()))
{
myMessage.Bcc.Add(mailAddress);
}
}
}
else
{
myMessage.Bcc.Add(MailBcc);
}
}
myMessage.Subject = Subject;
if (!string.IsNullOrEmpty(this.Priority.ToString()))
{
switch (this.Priority)
{
//case "High":
case PriorityEnum.High:
myMessage.Priority = MailPriority.High;
break;
//case "Low":
case PriorityEnum.Low:
myMessage.Priority = MailPriority.Low;
break;
default:
myMessage.Priority = MailPriority.Normal;
break;
}
}
if (!string.IsNullOrEmpty(ReplyTo))
{
myMessage.ReplyTo = MarkMailAddress(this.ReplyTo, this.MailRealName);
}
myMessage.Body = Body;
myMessage.IsBodyHtml = true;
return myMessage;
}
/// <summary>
/// 增加附件
/// </summary>
/// <returns></returns>
private MailMessage MarkMailMessageAttch()
{
MailMessage myMessage = new MailMessage();
myMessage = MarkMailMessage();
if(string.IsNullOrEmpty(AttachUrl))
{
throw (new Exception("还没有设置附件,<br/>请设置附件!"));
}
else
{
if (this.AttachUrl.IndexOf(";") > 0)
{
foreach (string Attach in AttachUrl.Split(';'))
{
if (!string.IsNullOrEmpty(Attach))
{
//产生附件对象
Attachment MailAttachment = new Attachment(Attach, System.Net.Mime.MediaTypeNames.Application.Octet);
//附件对象的基本信息
ContentDisposition Disposition = MailAttachment.ContentDisposition;
Disposition.CreationDate = System.IO.File.GetCreationTime(Attach);
Disposition.ModificationDate = System.IO.File.GetLastWriteTime(Attach);
Disposition.ReadDate = System.IO.File.GetLastAccessTime(Attach);
//为MailMessage增加附件
myMessage.Attachments.Add(MailAttachment);
}
}
}
else
{
//产生附件对象
Attachment ObjAttachment = new Attachment(AttachUrl, System.Net.Mime.MediaTypeNames.Application.Octet);
//附件对象的基本信息
ContentDisposition ObjDisposition = ObjAttachment.ContentDisposition;
ObjDisposition.CreationDate = System.IO.File.GetCreationTime(AttachUrl);
ObjDisposition.ModificationDate = System.IO.File.GetLastWriteTime(AttachUrl);
ObjDisposition.ReadDate = System.IO.File.GetLastAccessTime(AttachUrl);
//为MailMessage增加附件
myMessage.Attachments.Add(ObjAttachment);
}
return myMessage;
}
}
/// <summary>
/// 发送邮件
/// </summary>
/// <returns></returns>
public bool SendMail()
{
bool bResult = false;
try
{
SmtpClient Client = new SmtpClient();
Client = MarkSmtpClient();
MailMessage Message = new MailMessage();
Message = MarkMailMessage();
Client.Send(Message);
bResult = true;
}
catch (Exception Ex)
{
throw (new Exception(Ex.Message));
}
return bResult;
}
/// <summary>
/// 发送邮件(包含附件)
/// </summary>
/// <returns></returns>
public bool SendMailAttach()
{
Boolean bResult = false;
try
{
SmtpClient Client = new SmtpClient();
Client = MarkSmtpClient();
MailMessage Message = new MailMessage();
Message = MarkMailMessageAttch();
Client.Send(Message);
bResult=true ;
}
catch (Exception Ex)
{
throw (new Exception(Ex.Message));
}
return bResult;
}
}
代码
/*
//设置邮件
<add key="Host" value ="smtp服务器"/>
<add key="Port" value ="端口"/>
<add key="MailAddress" value ="邮件地址"/>
<add key="MailName" value ="邮件名称"/>
<add key="MailPassword" value ="邮件密码"/>
<add key="MailRealName" value ="邮件显示名称"/>
//使用方法
try
{
uMail MailHelper = new uMail();
//如果上面的内容已经设置,则调用时不需要再次设置
//MailHelper.Host = ""; //邮件发送服务器地址
//MailHelper.Port = 25; //邮件发送服务器端口
//MailHelper.MailName = ""; //发件人登录名称
//MailHelper.MailPassword = ""; //发件人密码
//MailHelper.MailRealName = ""; //发件人显示名称
//MailHelper.MailAddress = ""; //发件人邮件地址
/*如果ReplyTo为空,则不增加回复地址*/
//MailHelper.ReplyTo = "";
MailHelper.MailTo = ""; //邮件发送人地址,用;分割
MailHelper.MailCc = "";//邮件抄送人
MailHelper.MailBcc = "";//邮件密送人
MailHelper.Subject = "";//邮件标题
MailHelper.Priority = uMail.PriorityEnum.Normal;//邮件优先级
MailHelper.Body = "";//邮件内容
MailHelper.AttachUrl = @"F:\Tools\Good.jpg";//附件内容
MailHelper.SendMailAttach();//发送附件调用;
//MailHelper.SendMail();//普通邮件
Response.Write("Send E-Mail Success!");
}
catch (Exception Ex)
{
Response.Write(Ex.Message);
}
*/
|
|
|