using System; using System.Collections.Generic; using System.Net; using System.Net.Mail; using System.Text.RegularExpressions; namespace Central.Control.Utilities { /// /// 邮件操作类 /// public class MailHelper { /// /// 获取Email登陆地址 /// /// email地址 /// public static string GetEMailLoginUrl(string email) { if ((email == string.Empty) || (email.IndexOf("@") <= 0)) { return string.Empty; } int index = email.IndexOf("@"); email = "http://mail." + email.Substring(index + 1); return email; } /// /// 发送邮件 /// /// 邮件主题 /// 邮件正文 /// 发送者 /// 邮件地址列表 /// 主机IP /// public static string sendMail(string mailSubjct, string mailBody, string mailFrom, List mailAddress, string HostIP) { string str = ""; try { MailMessage message = new MailMessage { IsBodyHtml = false, Subject = mailSubjct, Body = mailBody, From = new MailAddress(mailFrom) }; for (int i = 0; i < mailAddress.Count; i++) { message.To.Add(mailAddress[i]); } new SmtpClient { UseDefaultCredentials = false, DeliveryMethod = SmtpDeliveryMethod.PickupDirectoryFromIis, Host = HostIP, Port = (char)0x19 }.Send(message); } catch (Exception exception) { str = exception.Message; } return str; } /// /// 发送邮件(要求登陆) /// /// 邮件主题 /// 邮件正文 /// 发送者 /// 接收地址列表 /// 主机IP /// 用户名 /// 密码 /// public static bool sendMail(string mailSubjct, string mailBody, string mailFrom, List mailAddress, string HostIP, string username, string password) { bool flag; string str = sendMail(mailSubjct, mailBody, mailFrom, mailAddress, HostIP, 0x19, username, password, false, string.Empty, out flag); return flag; } /// /// 发送邮件 /// /// 邮件主题 /// 邮件正文 /// 发送者 /// 接收地址列表 /// 主机IP /// 附件名 /// 用户名 /// 密码 /// 加密类型 /// public static string sendMail(string mailSubjct, string mailBody, string mailFrom, List mailAddress, string HostIP, string filename, string username, string password, bool ssl) { string str = ""; try { MailMessage message = new MailMessage { IsBodyHtml = false, Subject = mailSubjct, Body = mailBody, From = new MailAddress(mailFrom) }; for (int i = 0; i < mailAddress.Count; i++) { message.To.Add(mailAddress[i]); } if (System.IO.File.Exists(filename)) { message.Attachments.Add(new Attachment(filename)); } SmtpClient client = new SmtpClient { EnableSsl = ssl, UseDefaultCredentials = false }; NetworkCredential credential = new NetworkCredential(username, password); client.Credentials = credential; client.DeliveryMethod = SmtpDeliveryMethod.Network; client.Host = HostIP; client.Port = 0x19; client.Send(message); } catch (Exception exception) { str = exception.Message; } return str; } /// /// 发送邮件 /// /// /// /// /// /// /// /// /// /// /// /// /// public static string sendMail(string mailSubjct, string mailBody, string mailFrom, List mailAddress, string HostIP, int port, string username, string password, bool ssl, string replyTo, out bool sendOK) { sendOK = true; string str = ""; try { MailMessage message = new MailMessage { IsBodyHtml = false, Subject = mailSubjct, Body = mailBody, From = new MailAddress(mailFrom) }; if (replyTo != string.Empty) { MailAddress address = new MailAddress(replyTo); message.ReplyTo = address; } Regex regex = new Regex(@"\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*"); for (int i = 0; i < mailAddress.Count; i++) { if (regex.IsMatch(mailAddress[i])) { message.To.Add(mailAddress[i]); } } if (message.To.Count == 0) { return string.Empty; } SmtpClient client = new SmtpClient { EnableSsl = ssl, UseDefaultCredentials = false }; NetworkCredential credential = new NetworkCredential(username, password); client.Credentials = credential; client.DeliveryMethod = SmtpDeliveryMethod.Network; client.Host = HostIP; client.Port = port; client.Send(message); } catch (Exception exception) { str = exception.Message; sendOK = false; } return str; } } }