using System;
using System.Collections.Generic;
using System.Net.Mail;
using System.Text;
namespace Mail
{
public class MailHelper
{
/// <summary>
/// 郵件發送
/// </summary>
/// <param name="mailFrom">發件人信息</param>
/// <param name="listMailTo">收件人信息</param>
/// <param name="listMailCC">抄送人信息</param>
/// <param name="listMailBcc">密碼送人信息</param>
/// <param name="strSubject">標題</param>
/// <param name="strBody">內容</param>
/// <param name="listAttachment">附件</param>
public void SendMail(MainFrom mailFrom, List<MailTo> listMailTo,List<MailCC> listMailCC,List<MailBcc> listMailBcc,string strSubject, string strBody, List<Attachments> listAttachment)
{
MailMessage mailMsg = new MailMessage();
//郵件的發件人
MailAddress from = new MailAddress(mailFrom.MailFromAddress, mailFrom.MailFromDisplayName, System.Text.Encoding.GetEncoding("GB2312"));
mailMsg.From = from;
//設置郵件的收件人
foreach (var item in listMailTo)
{
MailAddress to = new MailAddress(item.MailToAddress,item.MailToDisplayName);
mailMsg.To.Add(to);
}
//設置抄送人
foreach (var item in listMailCC)
{
MailAddress cc = new MailAddress(item.MailCCAddress,item.MailCCDisplayName);
mailMsg.CC.Add(cc);
}
foreach (var item in listMailBcc)
{
MailAddress bcc = new MailAddress(item.MailBccAddress,item.MailBccDisplayName);
mailMsg.CC.Add(bcc);
}
mailMsg.Subject = strSubject;
mailMsg.Body = strBody;
foreach (var item in listAttachment)
{
mailMsg.Attachments.Add(new Attachment(item.AttachmentPath));
}
mailMsg.IsBodyHtml = true;
mailMsg.BodyEncoding = System.Text.Encoding.GetEncoding("GB2312");
mailMsg.Priority = MailPriority.Normal;
mailMsg.DeliveryNotificationOptions = DeliveryNotificationOptions.OnSuccess;
//郵件發送服務器
SmtpClient client = new SmtpClient();
client.Host = "mail.lenovots.com";
//設置用於 SMTP 事務的端口,默認的是 25
//client.Port = 25;
client.UseDefaultCredentials = false;
//發件人郵箱登陸名和密碼
client.Credentials = new System.Net.NetworkCredential("發件人郵箱地址", "發件人郵箱密碼");
client.DeliveryMethod = SmtpDeliveryMethod.Network;
//發送郵件
client.Send(mailMsg);
}
}
#region 發件人信息
public class MainFrom {
private string _mailFromAddress;
/// <summary>
/// 發件人郵箱地址
/// </summary>
public string MailFromAddress
{
get { return _mailFromAddress; }
set { _mailFromAddress = value; }
}
private string _mailFromDisplayName;
/// <summary>
/// 發件人顯示名稱
/// </summary>
public string MailFromDisplayName
{
get { return _mailFromDisplayName; }
set { _mailFromDisplayName = value; }
}
}
#endregion
#region 收件人信息
public class MailTo {
private string _mailToAddress;
/// <summary>
/// 收件人地址
/// </summary>
public string MailToAddress
{
get { return _mailToAddress; }
set { _mailToAddress = value; }
}
private string _mailToDisplayName;
/// <summary>
/// 收件人顯示名稱
/// </summary>
public string MailToDisplayName
{
get { return _mailToDisplayName; }
set { _mailToDisplayName = value; }
}
}
#endregion
#region 抄送人信息
public class MailCC {
private string _mailCC;
/// <summary>
/// 抄送人地址
/// </summary>
public string MailCCAddress
{
get { return _mailCC; }
set { _mailCC = value; }
}
private string _mailCCDisplayName;
/// <summary>
/// 抄送人顯示名稱
/// </summary>
public string MailCCDisplayName
{
get { return _mailCCDisplayName; }
set { _mailCCDisplayName = value; }
}
}
#endregion
#region 密送人信息
public class MailBcc {
private string _mailBccAddress;
/// <summary>
/// 密送人地址
/// </summary>
public string MailBccAddress
{
get { return _mailBccAddress; }
set { _mailBccAddress = value; }
}
private string _mailBccDisplayName;
/// <summary>
/// 密送人顯示名稱
/// </summary>
public string MailBccDisplayName
{
get { return _mailBccDisplayName; }
set { _mailBccDisplayName = value; }
}
}
#endregion
#region 附件信息
public class Attachments {
private string _attachmentPath;
/// <summary>
/// 附件路徑
/// </summary>
public string AttachmentPath
{
get { return _attachmentPath; }
set { _attachmentPath = value; }
}
}
#endregion