using System; using System.Net.Mail; using System.IO; /// <summary> /// Utilities 的摘要说明 /// </summary> public static class Utilities { static Utilities() { // // TODO: 在此处添加构造函数逻辑 // } //读取指定URL地址的HTML,用来以后发送网页用 public static string ScreenScrapeHtml(string url) { //读取stream并且对于中文页面防止乱码 StreamReader reader = new StreamReader(System.Net.WebRequest.Create(url).GetResponse().GetResponseStream(), System.Text.Encoding.GetEncoding("gb2312")); string str = reader.ReadToEnd(); reader.Close(); return str; } /// <summary> /// 发送邮件 /// </summary> /// <param name= "server "> smtp地址 </param> /// <param name= "username "> 用户名 </param> /// <param name= "password "> 密码 </param> /// <param name= "from "> 发信人地址 </param> /// <param name= "to "> 收信人地址 </param> /// <param name= "subject "> 邮件标题 </param> /// <param name= "body "> 邮件正文 </param> /// <param name= "IsHtml "> 是否是HTML格式的邮件 </param> public static void SendMail(string from, string to, string subject, string body, string server, string username, string password, bool IsHtml) { //设置SMTP 验证,端口默认为25,如果需要其他请修改 SmtpClient mailClient = new SmtpClient(server, 25); //指定如何发送电子邮件。 //Network 电子邮件通过网络发送到 SMTP 服务器。 //PickupDirectoryFromIis 将电子邮件复制到挑选目录,然后通过本地 Internet 信息服务 (IIS) 传送。 //SpecifiedPickupDirectory 将电子邮件复制到 SmtpClient.PickupDirectoryLocation 属性指定的目录,然后由外部应用程序传送。 mailClient.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network; //创建邮件对象 MailMessage mailMessage = new MailMessage(from, to, subject, body); //定义邮件正文,主题的编码方式 mailMessage.BodyEncoding = System.Text.Encoding.GetEncoding("gb2312"); mailMessage.SubjectEncoding = System.Text.Encoding.GetEncoding("gb2312"); //获取或者设置一个值,该值表示电子邮件正文是否为HTML mailMessage.IsBodyHtml = IsHtml; //指定邮件的优先级 mailMessage.Priority = MailPriority.High; ; /* // //添加附件 //System.Web.Mail.MailAttachment mailAttachment=new System.Web.Mail.MailAttachment(@ "f:/att.txt "); if (strFileName != " " && strFileName != null) { Attachment data = new Attachment(strFileName); mailMessage.Attachments.Add(data); } */ //发件人身份验证,否则163 发不了 //表示当前登陆用户的默认凭据进行身份验证,并且包含用户名密码 mailClient.UseDefaultCredentials = true; mailClient.Credentials = new System.Net.NetworkCredential(username, password); //发送 mailClient.Send(mailMessage); } //发送plaintxt public static void SendText(string from, string to, string subject, string body, string server, string username, string password) { SendMail(from, to, server, body, server, username, password, false); } //发送HTML内容 public static void SendHtml(string from, string to, string subject, string body, string server, string username, string password) { SendMail(from, to, server, body, server, username, password, true); } //发送指定网页 public static void SendWebUrl(string from, string to, string subject, string server, string username, string password, string url) { //发送指定网页 SendHtml(from, to, subject, ScreenScrapeHtml(url), server, username, password); } }