private static bool qqMail(Dictionary<string, string> MailConfig, string subject, string text, string email, out string beac) { beac = ""; if (!HttpTool.IsConnectInternet()) { beac = "网络不通"; return false; } string from = MailConfig["from"]; string pwd = MailConfig["pwd"]; string smtpServer = MailConfig["smtp"]; string port = MailConfig["port"]; bool ssl = false; if (Convert.ToInt16(MailConfig["ssl"]) > 0) ssl = true; beac = ""; MailMessage mail = new MailMessage(); SmtpClient smtp = new SmtpClient(); mail.From = new MailAddress(from, "", Encoding.UTF8); mail.To.Add(new MailAddress(email)); mail.IsBodyHtml = true; mail.SubjectEncoding = Encoding.UTF8; mail.Subject = subject; mail.BodyEncoding = Encoding.UTF8; mail.Priority = MailPriority.Normal; mail.Body = text; mail.Headers.Add("Disposition-Notification-To", "通知信息"); smtp.Host = smtpServer; smtp.DeliveryMethod = SmtpDeliveryMethod.Network; smtp.Timeout = 1000000; smtp.EnableSsl = ssl; smtp.Port = Convert.ToInt32(port); smtp.UseDefaultCredentials = false; smtp.Credentials = new System.Net.NetworkCredential(from, pwd); try { smtp.Send(mail); return true; } catch (Exception ex) { beac = ex.Message; return false; } }
/// <summary> /// 系统发送邮件 /// </summary> /// <param name="MailConfig">邮件配置</param> /// <param name="subject">主题</param> /// <param name="text">内容</param> /// <param name="email">收件人</param> /// <param name="beac">错误原因</param> /// <returns></returns> public static bool SendMailRun(Dictionary<string, string> MailConfig, string subject, string text, string email, out string beac) { beac = ""; if (!HttpTool.IsConnectInternet()) { beac = "网络不通"; return false; } string from = MailConfig["from"]; string pwd = MailConfig["pwd"]; string smtpServer = MailConfig["smtp"]; string port = MailConfig["port"]; bool ssl = false; if (Convert.ToInt16(MailConfig["ssl"]) > 0) ssl = true; if (smtpServer.Contains("qq.com")) { bool p = qqMail(MailConfig, subject, text, email, out beac); return p; } //邮件发送者 MailAddress f = new MailAddress(from); //邮件接收者 MailAddress to = new MailAddress(email); MailMessage mailobj = new MailMessage(f, to); // 添加发送和抄送 // mailobj.To.Add(""); // mailobj.CC.Add(""); //邮件标题 mailobj.Subject = subject; //邮件内容 mailobj.Body = text; //邮件不是html格式 mailobj.IsBodyHtml = true; //邮件编码格式 mailobj.BodyEncoding = System.Text.Encoding.GetEncoding("GB2312"); //邮件优先级 mailobj.Priority = MailPriority.High; //Initializes a new instance of the System.Net.Mail.SmtpClient class //that sends e-mail by using the specified SMTP server. SmtpClient smtp = new SmtpClient(smtpServer); //或者用: //SmtpClient smtp = new SmtpClient(); //smtp.Host = mailServer; smtp.EnableSsl = ssl; //不使用默认凭据访问服务器 smtp.UseDefaultCredentials = true; smtp.Credentials = new NetworkCredential(from.Split('@')[0], pwd); //使用network发送到smtp服务器 smtp.DeliveryMethod = SmtpDeliveryMethod.Network; try { //开始发送邮件 smtp.Send(mailobj); return true; } catch (Exception e) { beac = e.Message; return false; } }