//获取邮件配置信息 public static MailObj GetMailInfo() { XmlDocument xmlDocument = GetXmlDocument(); if (xmlDocument == null) { return(null); } MailObj mobj = new MailObj(); try { XmlElement rootElement = xmlDocument.DocumentElement; XmlNode EmailNode = rootElement.SelectSingleNode("EmailAlarmConfig"); mobj.From = EmailNode.FirstChild.FirstChild.Value; mobj.FromName = EmailNode.ChildNodes[1].FirstChild.Value; mobj.PassWord = EmailNode.ChildNodes[2].FirstChild.Value; mobj.Host = EmailNode.ChildNodes[3].FirstChild.Value; mobj.Subject = EmailNode.ChildNodes[4].FirstChild.Value; mobj.TimeOut = Convert.ToInt32(EmailNode.ChildNodes[5].FirstChild.Value); } catch (Exception) { return(null); } return(mobj); }
//修改邮件配置 public static Boolean ModifyMailInfo(MailObj mailObj_para) { XmlDocument xmlDocument = GetXmlDocument(); if (xmlDocument == null) { return(false); } try { XmlElement rootElement = xmlDocument.DocumentElement; XmlNode EmailNode = rootElement.SelectSingleNode("EmailAlarmConfig"); EmailNode.FirstChild.FirstChild.Value = mailObj_para.From; EmailNode.ChildNodes[1].FirstChild.Value = mailObj_para.FromName; EmailNode.ChildNodes[2].FirstChild.Value = mailObj_para.PassWord; EmailNode.ChildNodes[3].FirstChild.Value = mailObj_para.Host; EmailNode.ChildNodes[4].FirstChild.Value = mailObj_para.Subject; EmailNode.ChildNodes[5].FirstChild.Value = (mailObj_para.TimeOut).ToString(); xmlDocument.Save(GetFilePath()); } catch (Exception) { return(false); } return(true); }
private void SendMail2(MailObj mail) { System.Net.Mail.MailMessage msg = new System.Net.Mail.MailMessage(); if (mail.To != null) { foreach (string item in mail.To) { msg.To.Add(item); } } else { Debug.WriteLine("发送地址必须填写"); } if (mail.CC != null) { foreach (string item in mail.CC) { msg.CC.Add(item); } } try { msg.From = new MailAddress(mail.From, mail.FromName, System.Text.Encoding.UTF8); msg.Subject = mail.Subject; //邮件标题 msg.SubjectEncoding = System.Text.Encoding.UTF8; //邮件标题编码 msg.Body = mail.Body; //邮件内容 msg.BodyEncoding = System.Text.Encoding.UTF8; //邮件内容编码 msg.IsBodyHtml = false; //是否是HTML邮件 msg.Priority = MailPriority.High; //邮件优先级 SmtpClient client = new SmtpClient(); client.Credentials = new System.Net.NetworkCredential(mail.From, mail.PassWord); //注册的邮箱和密码 client.Host = mail.Host; client.Timeout = mail.TimeOut; object userState = msg; //client.SendAsync(msg, userState); client.Send(msg); Debug.WriteLine("发送成功"); } catch (Exception ex) { Debug.WriteLine(ex.Message.ToString(), "发送邮件出错"); } }
Queue <MailObj> HighPriority = new Queue <MailObj>(); //优先列 public void fillqueue(MailObj mail, int Priority) //调用接口,mail是填充内容,priority是优先级 { if (Priority == 1) { NormalPriority.Enqueue(mail);//填充 } else { HighPriority.Enqueue(mail); } if (!IsThreadOn) { IsThreadOn = true; Sendmail = new Thread(SendMailThread); Sendmail.Start(); } }
//初始化相关数据结构 public static void Inition() { sobj = OperateAlarmConfigClass.GetSMSinfo(); mobj = OperateAlarmConfigClass.GetMailInfo(); cobj = OperateAlarmConfigClass.GetPhoneInfo(); LAM = OperateAlarmConfigClass.GetAlarmModes(); CallObj callObj = new CallObj(); callObj.BaudRate = 1200; callObj.DataBits = (byte)8; callObj.StopBits = (byte)1; callObj.Parity = (byte)0; callObj.PortNum = "COM1"; OperateAlarmConfigClass.ModifyPhoneInfo(callObj); SmsObj smsObj = new SmsObj(); smsObj.BaudRate = 1200; smsObj.databits = (byte)8; smsObj.stopBits = (byte)1; smsObj.parity = (byte)4; smsObj.portName = "COM6"; OperateAlarmConfigClass.ModifySMSinfo(smsObj); MailObj mailObj = new MailObj(); mailObj.From = "*****@*****.**"; mailObj.FromName = "East"; mailObj.PassWord = "******"; mailObj.Host = "192.168.1.81"; mailObj.Subject = "这是自动报警邮件"; mailObj.TimeOut = 8; OperateAlarmConfigClass.ModifyMailInfo(mailObj); }