C# 發郵件
場景:batch跑完後,通過郵件通知主機batch運行結果,這種功能n年前寫過,實在不想再造個輪子,網上找了一篇
https://blog.csdn.net/u013223198/article/details/53431896
//Email 實體類 public class MyEmail { /// <summary> /// 發送方發送方服務器地址 /// </summary> public string strHost { get; set; } /// <summary> /// 發送方帳號 /// </summary> public string strAccount { get; set; } /// <summary> /// 發送方密碼 /// </summary> public string strPwd { get; set; } /// <summary> /// 發送方郵件地址 /// </summary> public string strFrom { get; set; } /// <summary> /// 接收方郵件地址 /// </summary> public string to { get; set; } /// <summary> /// 郵件標題 /// </summary> public string title { get; set; } /// <summary> /// 郵件正文內容 /// </summary> public string content { get; set; } /// <summary> /// 附件 /// </summary> public string sfile { get; set; } }
//發送Email公共方法 public class SendEmailHelp { /// <summary> /// 發送郵件 /// </summary> /// <param name="strHost">發送方發送方服務器地址</param> /// <param name="strAccount">發送方帳號</param> /// <param name="strPwd">發送方密碼</param> /// <param name="strFrom">發送方郵件地址</param> /// <param name="to">接收方郵件地址</param> /// <param name="title">郵件標題</param> /// <param name="content">郵件正文內容</param> /// <param name="sfile">郵件附件</param> /// <returns></returns> public bool sendMail(MyEmail e)//string strHost, string strAccount, string strPwd, string strFrom, string to, string title, string content { SmtpClient smtpClient = new SmtpClient(); if (string.IsNullOrEmpty(e.strHost)) { e.strHost = "smtp.sina.cn";//新浪測試 } if (string.IsNullOrEmpty(e.strAccount)) { e.strAccount = "xxx"; } if (string.IsNullOrEmpty(e.strPwd)) { e.strPwd = "xxx"; } if (string.IsNullOrEmpty(e.strFrom)) { e.strFrom = "xxx"; } smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network;//指定電子郵件發送方式 smtpClient.Host = e.strHost; ;//指定SMTP服務器 smtpClient.Credentials = new System.Net.NetworkCredential(e.strAccount, e.strPwd);//用戶名和密碼 MailMessage mailMessage = new MailMessage(e.strFrom, e.to); mailMessage.Subject = e.title;//主題 mailMessage.Body = e.content;//內容 mailMessage.BodyEncoding = System.Text.Encoding.UTF8;//正文編碼 mailMessage.IsBodyHtml = true;//設置為HTML格式 mailMessage.Priority = MailPriority.High;//優先級 //// 添加附件 if (e.sfile != "") { mailMessage.Attachments.Add(new Attachment(e.sfile)); } try { smtpClient.Send(mailMessage); mailMessage.Dispose();//釋放資源 return true; } catch { return false; } } }
測試代碼:
MyEmail ee = new MyEmail();
ee.to = "[email protected]";
ee.title = "huawei 已經轉換完成文件 " + directoryPath;
ee.content = "huawei 已經轉換完成文件 " + directoryPath;
SendEmailHelp mailTest = new SendEmailHelp();
mailTest.sendMail(ee);
C# 發郵件