using Model; using System; using System.Collections.Generic; using System.Net.Mail; namespace FineUIPro.Web.common { public class MailHelper { #region 从web.config中取得发送邮件参数 ////SMTP服务器 //public static string MailSmtpServer //{ // get { return System.Configuration.ConfigurationManager.AppSettings["mailSmtpServer"]; } //} ////系统发件地址 //public static string MailServerFrom //{ // get // { // if (getEmailPop(ID)) // { // } // else // { // return System.Configuration.ConfigurationManager.AppSettings["MailServerFrom"]; // } // } //} ////系统发件密码 //public static string MailServerpassword //{ // get { return System.Configuration.ConfigurationManager.AppSettings["MailServerpassword"]; } //} //系统发件人名称 //public static string MailServeruserName //{ // get { return System.Configuration.ConfigurationManager.AppSettings["MailServeruserName"]; } //} #endregion /// /// 私有构造方法,不允许创建实例 /// private MailHelper() { // TODO: Add constructor logic here } /// /// SendNetMail(须配置SMTP服务器地址)(多个收件人、抄送人、附件其参数用";"隔开,最后一个不能有";") /// /// 发件人 /// 收件人(多个收件人用";"隔开,最后一个不能有";") /// 主题 /// 内容 /// 附件(多个附件用";"隔开,最后一个不能有";") /// 密码(对加密过的) /// 优先级 /// 抄送(多个抄送人用";"隔开,最后一个不能有";") /// 输出信息 public static bool SendNetMail(Email_Pop ps, string mailFrom, string[] mailTo, string mailSubject, string mailBody, string mailAttch, string mailCode, string mailPriority, string[] mailCC, out string resultMessage) { //初始化输出参数 resultMessage = ""; //发件人和收件人不为空 if (string.IsNullOrEmpty(ps.EmailYx) || mailTo == null) { resultMessage = "Please Fill Email Addresser Or Addressee . "; return false; } if (!string.IsNullOrEmpty(ps.EmailYx)) { mailFrom = ps.EmailYx; } MailMessage email = new MailMessage(); //MailAddress emailFrom = new MailAddress(mailFrom); //发件人 email.From = new MailAddress(mailFrom, ps.EmailYx);//发件人地址 //收件人 if (mailTo != null && mailTo.Length > 0) { foreach (string send in mailTo) { if (!String.IsNullOrEmpty(send)) { email.To.Add(send); } } } //加抄送 if (mailCC != null && mailCC.Length > 0) { foreach (string cc in mailCC) { if (!String.IsNullOrEmpty(cc)) { email.CC.Add(cc); } } } //主题 email.Subject = mailSubject; //内容 email.Body = mailBody; //附件 if (!string.IsNullOrEmpty(mailAttch)) { string[] attachments = mailAttch.Split(';'); foreach (string file in attachments) { System.Net.Mail.Attachment attach = new System.Net.Mail.Attachment(file, System.Net.Mime.MediaTypeNames.Application.Octet); //为附件添加发送时间 System.Net.Mime.ContentDisposition disposition = attach.ContentDisposition; disposition.CreationDate = System.IO.File.GetCreationTime(file); disposition.ModificationDate = System.IO.File.GetLastWriteTime(file); disposition.ReadDate = System.IO.File.GetLastAccessTime(file); //添加附件 email.Attachments.Add(attach); } } //优先级 email.Priority = (mailPriority == "High") ? System.Net.Mail.MailPriority.High : System.Net.Mail.MailPriority.Normal; //内容编码、格式 email.BodyEncoding = System.Text.Encoding.UTF8; email.IsBodyHtml = true; //SMTP服务器 System.Net.Mail.SmtpClient client = new System.Net.Mail.SmtpClient(ps.EmailFwq); client.UseDefaultCredentials = true; //验证(Credentials 凭证) client.Credentials = new System.Net.NetworkCredential(mailFrom, ps.EmailPass); //处理待发的电子邮件的方法 (Delivery 发送,传输) client.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network; try { //发送邮件 client.Send(email); if (mailTo != null && mailTo.Length > 0) { foreach (string send in mailTo) { if (!String.IsNullOrEmpty(send)) { Email_SendLog newSendEmail = new Email_SendLog(); newSendEmail.EmailId = Guid.NewGuid().ToString(); newSendEmail.EmailTile = mailSubject; newSendEmail.EmailContent = mailBody; newSendEmail.EmailURL = send; newSendEmail.EmailName = send; newSendEmail.EmailStatus = "发送成功"; newSendEmail.CreateTime = DateTime.Now; newSendEmail.CreateName = "sys"; BLL.Email_Send.Email_SendLogService.AddEmail_SendLog(newSendEmail); } } } return true; } catch (Exception ex) { if (mailTo != null && mailTo.Length > 0) { List ss = new List(); foreach (string send in mailTo) { if (!String.IsNullOrEmpty(send)) { Email_SendLog newSendEmail = new Email_SendLog(); newSendEmail.EmailId = Guid.NewGuid().ToString(); newSendEmail.EmailTile = mailSubject; newSendEmail.EmailContent = mailBody; newSendEmail.EmailURL = send; newSendEmail.EmailName = send; newSendEmail.EmailStatus = "发送失败"; newSendEmail.CreateTime = DateTime.Now; newSendEmail.CreateName = "sys"; BLL.Email_Send.Email_SendLogService.AddEmail_SendLog(newSendEmail); } } } resultMessage = ex.Message; return false; } finally { //及时释放占用的资源 email.Attachments.Clear(); email.Attachments.Dispose(); } } public static bool getDateNow() { bool f = false; string dataTime = DateTime.Now.ToString("dd"); Sys_Set pops = new Sys_Set(); pops = BLL.Sys_SetService.GetSetById(3); if (pops != null) { if (pops.SetValue.Equals(dataTime)) { f = true; } } return f; } public static Email_Pop getEmailPop(string EmailID) { Email_Pop pp = new Email_Pop(); pp = BLL.Email_Send.Email_PopService.GetEmail_Pop(EmailID); return pp; } } }