MailHelper.cs 7.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Net;
  4. using System.Net.Mail;
  5. using System.Text.RegularExpressions;
  6. namespace Central.Control.Utilities
  7. {
  8. /// <summary>
  9. /// 邮件操作类
  10. /// </summary>
  11. public class MailHelper
  12. {
  13. /// <summary>
  14. /// 获取Email登陆地址
  15. /// </summary>
  16. /// <param name="email">email地址</param>
  17. /// <returns></returns>
  18. public static string GetEMailLoginUrl(string email)
  19. {
  20. if ((email == string.Empty) || (email.IndexOf("@") <= 0))
  21. {
  22. return string.Empty;
  23. }
  24. int index = email.IndexOf("@");
  25. email = "http://mail." + email.Substring(index + 1);
  26. return email;
  27. }
  28. /// <summary>
  29. /// 发送邮件
  30. /// </summary>
  31. /// <param name="mailSubjct">邮件主题</param>
  32. /// <param name="mailBody">邮件正文</param>
  33. /// <param name="mailFrom">发送者</param>
  34. /// <param name="mailAddress">邮件地址列表</param>
  35. /// <param name="HostIP">主机IP</param>
  36. /// <returns></returns>
  37. public static string sendMail(string mailSubjct, string mailBody, string mailFrom, List<string> mailAddress, string HostIP)
  38. {
  39. string str = "";
  40. try
  41. {
  42. MailMessage message = new MailMessage
  43. {
  44. IsBodyHtml = false,
  45. Subject = mailSubjct,
  46. Body = mailBody,
  47. From = new MailAddress(mailFrom)
  48. };
  49. for (int i = 0; i < mailAddress.Count; i++)
  50. {
  51. message.To.Add(mailAddress[i]);
  52. }
  53. new SmtpClient { UseDefaultCredentials = false, DeliveryMethod = SmtpDeliveryMethod.PickupDirectoryFromIis, Host = HostIP, Port = (char)0x19 }.Send(message);
  54. }
  55. catch (Exception exception)
  56. {
  57. str = exception.Message;
  58. }
  59. return str;
  60. }
  61. /// <summary>
  62. /// 发送邮件(要求登陆)
  63. /// </summary>
  64. /// <param name="mailSubjct">邮件主题</param>
  65. /// <param name="mailBody">邮件正文</param>
  66. /// <param name="mailFrom">发送者</param>
  67. /// <param name="mailAddress">接收地址列表</param>
  68. /// <param name="HostIP">主机IP</param>
  69. /// <param name="username">用户名</param>
  70. /// <param name="password">密码</param>
  71. /// <returns></returns>
  72. public static bool sendMail(string mailSubjct, string mailBody, string mailFrom, List<string> mailAddress, string HostIP, string username, string password)
  73. {
  74. bool flag;
  75. string str = sendMail(mailSubjct, mailBody, mailFrom, mailAddress, HostIP, 0x19, username, password, false, string.Empty, out flag);
  76. return flag;
  77. }
  78. /// <summary>
  79. /// 发送邮件
  80. /// </summary>
  81. /// <param name="mailSubjct">邮件主题</param>
  82. /// <param name="mailBody">邮件正文</param>
  83. /// <param name="mailFrom">发送者</param>
  84. /// <param name="mailAddress">接收地址列表</param>
  85. /// <param name="HostIP">主机IP</param>
  86. /// <param name="filename">附件名</param>
  87. /// <param name="username">用户名</param>
  88. /// <param name="password">密码</param>
  89. /// <param name="ssl">加密类型</param>
  90. /// <returns></returns>
  91. public static string sendMail(string mailSubjct, string mailBody, string mailFrom, List<string> mailAddress, string HostIP, string filename, string username, string password, bool ssl)
  92. {
  93. string str = "";
  94. try
  95. {
  96. MailMessage message = new MailMessage
  97. {
  98. IsBodyHtml = false,
  99. Subject = mailSubjct,
  100. Body = mailBody,
  101. From = new MailAddress(mailFrom)
  102. };
  103. for (int i = 0; i < mailAddress.Count; i++)
  104. {
  105. message.To.Add(mailAddress[i]);
  106. }
  107. if (System.IO.File.Exists(filename))
  108. {
  109. message.Attachments.Add(new Attachment(filename));
  110. }
  111. SmtpClient client = new SmtpClient
  112. {
  113. EnableSsl = ssl,
  114. UseDefaultCredentials = false
  115. };
  116. NetworkCredential credential = new NetworkCredential(username, password);
  117. client.Credentials = credential;
  118. client.DeliveryMethod = SmtpDeliveryMethod.Network;
  119. client.Host = HostIP;
  120. client.Port = 0x19;
  121. client.Send(message);
  122. }
  123. catch (Exception exception)
  124. {
  125. str = exception.Message;
  126. }
  127. return str;
  128. }
  129. /// <summary>
  130. /// 发送邮件
  131. /// </summary>
  132. /// <param name="mailSubjct"></param>
  133. /// <param name="mailBody"></param>
  134. /// <param name="mailFrom"></param>
  135. /// <param name="mailAddress"></param>
  136. /// <param name="HostIP"></param>
  137. /// <param name="port"></param>
  138. /// <param name="username"></param>
  139. /// <param name="password"></param>
  140. /// <param name="ssl"></param>
  141. /// <param name="replyTo"></param>
  142. /// <param name="sendOK"></param>
  143. /// <returns></returns>
  144. public static string sendMail(string mailSubjct, string mailBody, string mailFrom, List<string> mailAddress, string HostIP, int port, string username, string password, bool ssl, string replyTo, out bool sendOK)
  145. {
  146. sendOK = true;
  147. string str = "";
  148. try
  149. {
  150. MailMessage message = new MailMessage
  151. {
  152. IsBodyHtml = false,
  153. Subject = mailSubjct,
  154. Body = mailBody,
  155. From = new MailAddress(mailFrom)
  156. };
  157. if (replyTo != string.Empty)
  158. {
  159. MailAddress address = new MailAddress(replyTo);
  160. message.ReplyTo = address;
  161. }
  162. Regex regex = new Regex(@"\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*");
  163. for (int i = 0; i < mailAddress.Count; i++)
  164. {
  165. if (regex.IsMatch(mailAddress[i]))
  166. {
  167. message.To.Add(mailAddress[i]);
  168. }
  169. }
  170. if (message.To.Count == 0)
  171. {
  172. return string.Empty;
  173. }
  174. SmtpClient client = new SmtpClient
  175. {
  176. EnableSsl = ssl,
  177. UseDefaultCredentials = false
  178. };
  179. NetworkCredential credential = new NetworkCredential(username, password);
  180. client.Credentials = credential;
  181. client.DeliveryMethod = SmtpDeliveryMethod.Network;
  182. client.Host = HostIP;
  183. client.Port = port;
  184. client.Send(message);
  185. }
  186. catch (Exception exception)
  187. {
  188. str = exception.Message;
  189. sendOK = false;
  190. }
  191. return str;
  192. }
  193. }
  194. }