EmailHelper.cs 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Net;
  5. using System.Net.Mail;
  6. using System.Text;
  7. using System.Threading.Tasks;
  8. namespace WebAPIBase.Utils
  9. {
  10. /// <summary>
  11. /// 邮件发送类
  12. /// </summary>
  13. public class EmailHelper
  14. {
  15. public EmailHelper()
  16. {
  17. }
  18. #region 属性
  19. /// <summary>
  20. /// 邮件主题
  21. /// </summary>
  22. public virtual string Title { get; set; }
  23. /// <summary>
  24. /// 邮件内容
  25. /// </summary>
  26. public virtual string Cont { get; set; }
  27. /// <summary>
  28. /// 发邮件地址
  29. /// </summary>
  30. public virtual string SendEMail { get; set; }
  31. /// <summary>
  32. /// 发邮件密码
  33. /// </summary>
  34. public virtual string SendPwd { get; set; }
  35. /// <summary>
  36. /// 收邮件地址
  37. /// </summary>
  38. public string ReceiveEmail { get; set; }
  39. #endregion
  40. #region 方法
  41. /// <summary>
  42. /// 发邮件
  43. /// </summary>
  44. /// <param name="email"></param>
  45. public void SendMail(EmailHelper email)
  46. {
  47. //发邮件地址和密码
  48. email.SendEMail = AppSettingsHelper.Configuration["emailSender:address"];
  49. email.SendPwd = AppSettingsHelper.Configuration["emailSender:pwd"];
  50. var smtpServer = GetSmtpServer(email.SendEMail);
  51. MailAddress addressFrom = new MailAddress(email.SendEMail);
  52. MailMessage mailMsg = new MailMessage();
  53. mailMsg.From = addressFrom;
  54. mailMsg.To.Add(email.ReceiveEmail);
  55. mailMsg.Subject = email.Title;
  56. mailMsg.Body = email.Cont;
  57. mailMsg.IsBodyHtml = true;
  58. mailMsg.BodyEncoding = Encoding.Default;
  59. mailMsg.Priority = MailPriority.High;
  60. SmtpClient smtpClient = new SmtpClient();
  61. smtpClient.Host = smtpServer;
  62. smtpClient.UseDefaultCredentials = false;
  63. smtpClient.Credentials = new NetworkCredential(email.SendEMail, email.SendPwd);
  64. smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network;
  65. smtpClient.Send(mailMsg);
  66. }
  67. /// <summary>
  68. /// 发邮件给管理员
  69. /// </summary>
  70. /// <param name="email"></param>
  71. public void SendMailToAdmin(EmailHelper email)
  72. {
  73. //发邮件地址和密码
  74. string sendEmail = AppSettingsHelper.Configuration["emailSender:address"]; //发邮件地址
  75. string sendPwd = AppSettingsHelper.Configuration["emailSender:pwd"]; //发邮件密码
  76. string receiveEmail = ReceiveEmail; //收邮件的管理员
  77. var smtpServer = GetSmtpServer(sendEmail);
  78. MailAddress addressFrom = new MailAddress(sendEmail);
  79. MailMessage mailMsg = new MailMessage();
  80. mailMsg.From = addressFrom;
  81. mailMsg.To.Add(receiveEmail);
  82. //同时发送多个邮件
  83. //mailMsg.To.Add("626056064@qq.com,718083192@qq.com");
  84. mailMsg.Subject = email.Title; //邮件标题
  85. mailMsg.Body = email.Cont; //邮件内容
  86. mailMsg.IsBodyHtml = true;
  87. mailMsg.BodyEncoding = Encoding.Default;
  88. mailMsg.Priority = MailPriority.High;
  89. SmtpClient smtpClient = new SmtpClient();
  90. smtpClient.Host = smtpServer;
  91. smtpClient.UseDefaultCredentials = false;
  92. smtpClient.Credentials = new NetworkCredential(sendEmail, sendPwd);
  93. smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network;
  94. smtpClient.Send(mailMsg);
  95. }
  96. public string GetSmtpServer(string sendEmail)
  97. {
  98. var smtpServer = "smtp.chinahonden.com";
  99. return smtpServer;
  100. }
  101. /// <summary>
  102. /// 添加空格
  103. /// </summary>
  104. /// <param name="t"></param>
  105. /// <param name="count"></param>
  106. public static void AppendNbsp(ref StringBuilder t, int count)
  107. {
  108. while (count > 0)
  109. {
  110. t.Append("&nbsp;");
  111. count--;
  112. }
  113. }
  114. /// <summary>
  115. ///格式化的邮件内容
  116. /// </summary>
  117. /// <param name="email_customer"></param>
  118. /// <returns></returns>
  119. public string GetAdminBody(string emailContent)
  120. {
  121. StringBuilder bodyInfo = new StringBuilder("<html><head><title></title></head><body>");
  122. bodyInfo.Append(string.Format("管理员您好:"));
  123. //bodyInfo.Append("<br /><br />");
  124. bodyInfo.Append(string.Format("{0}", emailContent));
  125. AppendNbsp(ref bodyInfo, 77);
  126. bodyInfo.Append(string.Format("<p>{0}<br/>", "牛买网"));
  127. AppendNbsp(ref bodyInfo, 77);
  128. bodyInfo.Append(string.Format("{0}</body></html>", DateTime.Now.ToShortDateString()));
  129. return bodyInfo.ToString();
  130. }
  131. /// <summary>
  132. /// 投递项目给投资商邮件模板
  133. /// </summary>
  134. /// <param name="emailContent"></param>
  135. /// <returns></returns>
  136. public string GetInvestorBody(string emailContent)
  137. {
  138. StringBuilder bodyInfo = new StringBuilder("<html><head><title></title></head><body>");
  139. //bodyInfo.Append(string.Format("尊敬的***公司:"));
  140. //bodyInfo.Append("<br /><br />");
  141. bodyInfo.Append(string.Format("{0}", emailContent));
  142. bodyInfo.Append(string.Format("<p>"));
  143. AppendNbsp(ref bodyInfo, 77);
  144. bodyInfo.Append(string.Format("{0}<br/>", "融资通网"));
  145. AppendNbsp(ref bodyInfo, 77);
  146. bodyInfo.Append(string.Format("{0}</body></html>", DateTime.Now.ToShortDateString()));
  147. return bodyInfo.ToString();
  148. }
  149. #endregion
  150. }
  151. }