

/// <summary>
/// 发送邮件类 的摘要说明
/// </summary>
public class MailSender
{
#region 数据成员
//收件人地址
private string m_To = "";
//抄送人地址
private string m_CC = "";
//密送人地址
private string m_BCC = "";
//发件人地址
private string m_From = "";
//邮件标题
private string m_Subject = "";
//邮件正文
private string m_Body = "";
//发送服务器名或地址
private string m_Host = "";
//发送服务器SMTP端口
private int m_SmtpPort = -1;
//发件人用户名
private string m_UserName = "";
//发件人密码
private string m_Password = "";
//邮件附件
private string m_Attachment = "";
//紧急程度
private MailPriority m_Priority = MailPriority.Normal;
//正文内容是否支持HTML
private bool m_IsBodyHtml = true;
//错误信息
private string m_ErrorMessage = "";
#endregion
#region 构造函数
public MailSender()
{
}
/**/
/// <summary>
/// 构造函数重载
/// </summary>
/// <param name="to">收件人地址</param>
/// <param name="from">发件人地址</param>
/// <param name="subject">邮件标题</param>
/// <param name="body">邮件正文</param>
/// <param name="host">发送邮件服务器名或地址</param>
/// <param name="userName">发件人用户名</param>
/// <param name="password">发件人密码</param>
public MailSender(string to, string from, string subject, string body, string host, string userName, string password, string fileName)
{
m_To = to;
m_From = from;
m_Subject = subject;
m_Body = body;
m_Host = host;
m_UserName = userName;
m_Password = password;
m_Attachment = fileName;
}
#endregion
#region 数据属性
//收件人地址
public string To
{
get
{
return m_To;
}
set
{
m_To = value;
}
}
//抄送人地址
public string CC
{
get
{
return m_CC;
}
set
{
m_CC = value;
}
}
//密送人地址
public string BCC
{
get
{
return m_BCC;
}
set
{
m_BCC = value;
}
}
//发件人地址
public string From
{
get
{
return m_From;
}
set
{
m_From = value;
}
}
//邮件标题
public string Subject
{
get
{
return m_Subject;
}
set
{
m_Subject = value;
}
}
//邮件正文
public string Body
{
get
{
return m_Body;
}
set
{
m_Body = value;
}
}
//服务器地址(名)
public string Host
{
get
{
return m_Host;
}
set
{
m_Host = value;
}
}
//服务器SMTP端口
public int SmtpPort
{
get
{
return m_SmtpPort;
}
set
{
m_SmtpPort = value;
}
}
//发件人的用户名
public string UserName
{
get
{
return m_UserName;
}
set
{
m_UserName = value;
}
}
//发件人的密码
public string Password
{
get
{
return m_Password;
}
set
{
m_Password = value;
}
}
//邮件附件
public string Attachment
{
get
{
return m_Attachment;
}
set
{
m_Attachment = value;
}
}
//紧急程度
public MailPriority Priority
{
get
{
return m_Priority;
}
set
{
m_Priority = value;
}
}
//正文内容是否支持
public bool IsBodyHtml
{
get
{
return m_IsBodyHtml;
}
set
{
m_IsBodyHtml = value;
}
}
//错误信息
public string ErrorMessage
{
get
{
return m_ErrorMessage;
}
set
{
m_ErrorMessage = value;
}
}
#endregion
/// <summary>
/// 发送邮件
/// </summary>
/// <returns>发送是否成功</returns>
public bool Send()
{
try
{
//获取所有的收件人地址
char[] ch = { ';' };
string[] address = m_To.Split(ch);//收件人
string[] CTos = m_CC.Split(ch);//抄送人
string[] STos = m_BCC.Split(ch);//密送人
//定义邮件消息
MailMessage msg = new MailMessage();
//收件人地址
foreach (string i in address)
if (!string.IsNullOrEmpty(i))
{
msg.To.Add(new MailAddress(i));
}
//发件人地址
MailAddress fromAddress = new MailAddress(m_From);
msg.From = fromAddress;
//正文是否支持HTML
msg.IsBodyHtml = m_IsBodyHtml;
//紧急程度
msg.Priority = m_Priority;
//邮件标题
msg.Subject = m_Subject;
//邮件正文
msg.Body = m_Body;
msg.SubjectEncoding = Encoding.UTF8;
msg.BodyEncoding = Encoding.UTF8;
//抄送人
foreach (string s in CTos)
{
if (!string.IsNullOrEmpty(s))
{
msg.CC.Add(new MailAddress(s));
}
}
//密送人
foreach (string s in STos)
{
if (!string.IsNullOrEmpty(s))
{
msg.Bcc.Add(new MailAddress(s));
}
}
//获取所有邮件附件
string[] attachMents = m_Attachment.Split(ch);
foreach (string att in attachMents)
{
if (!string.IsNullOrEmpty(att))
{
//附件对象
Attachment data = new Attachment(att, MediaTypeNames.Application.Octet);
//附件资料
ContentDisposition disposition = data.ContentDisposition;
disposition.CreationDate = System.IO.File.GetCreationTime(att);
disposition.ModificationDate = System.IO.File.GetLastWriteTime(att);
disposition.ReadDate = System.IO.File.GetLastAccessTime(att);
//加入邮件附件
msg.Attachments.Add(data);
}
}
//使用简单邮件传输协议来传送邮件
SmtpClient sendMail = new SmtpClient();
//发送邮件的服务器名或地址
sendMail.Host = m_Host;
//SMTP端口
if (m_SmtpPort != -1)
{
sendMail.Port = m_SmtpPort;
}
//验证发件人的身份
sendMail.Credentials = new NetworkCredential(m_UserName, m_Password);
//处理待发送邮件的方法
sendMail.DeliveryMethod = SmtpDeliveryMethod.Network;
//发送邮件
sendMail.Send(msg);
return true;
}
catch (Exception ex)
{
m_ErrorMessage = ex.Message;
return false;
}
}
}
调用:


MailSender ms = new MailSender();
//服务器信息
ms.Host = "smtp.xxx.com";
ms.UserName = xxx@xxx.com;
ms.Password = "xxx";
//发送双方信息,收件方多个用";"号隔开内容
ms.To = tbxTo.Text;
ms.CTo = tbxCTo.Text;
ms.STo = tbxSTo.Text;
ms.From = xxx@xxx.com;
//判断发送紧急程度,默认一般
switch (ddlMergency.SelectedIndex)
{
case 0:
ms.Priority = System.Net.Mail.MailPriority.Low;
break;
case 1:
ms.Priority = System.Net.Mail.MailPriority.Normal;
break;
case 2:
ms.Priority = System.Net.Mail.MailPriority.High;
break;
}
//发送内容信息
ms.Subject = tbxSubject.Text;
ms.Body = tbxBody.Text;
//附件,多个用";"号隔开内容
if (!string.IsNullOrEmpty(File1.Value))
{
ms.Attachment = File1.Value;
//ms.File += ";"+File1.Value;
}
//开始发送
if (ms.Send())
{
Response.Write("Succeed!");
}
else
{
Response.Write("Fail!");
}