public MailBag(bool?isWeb = true) { SiteSettings site = new SiteSettings(); CompanyName = site.CompanyName; CompanyMail = site.CompanyEmail; CompanyWebsite = site.CompanyWebsite; CompanyMailAuto = site.CompanyEmailAuto; //从config读取邮件配置 MailSettingsSectionGroup mailSettings; if (isWeb == true) { Configuration config = WebConfigurationManager.OpenWebConfiguration("~/"); mailSettings = (MailSettingsSectionGroup)config.GetSectionGroup("system.net/mailSettings"); } else { Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);//OpenExeConfiguration2个方法的参数我也没搞清楚到底该怎么用。 mailSettings = NetSectionGroup.GetSectionGroup(config).MailSettings; } this.m_SmtpUserName = mailSettings.Smtp.Network.UserName; this.m_SmtpUserPassword = mailSettings.Smtp.Network.Password; this.From = mailSettings.Smtp.From; this.DefaultCredentials = mailSettings.Smtp.Network.DefaultCredentials; this.EnableSsl = mailSettings.Smtp.Network.EnableSsl; this.Port = mailSettings.Smtp.Network.Port; this.Host = mailSettings.Smtp.Network.Host; this.IsBodyHtml = true; this.BodyEncoding = 936; }
private static void SendMail(MailMessage mailMessage, bool isAsync, string host = null, int port = 0, ICredentialsByHost credential = null) { if (null == mailMessage) { throw new ArgumentNullException("mailMessage"); } if (mailMessage.To.IsNullOrEmpty() && mailMessage.CC.IsNullOrEmpty() && mailMessage.Bcc.IsNullOrEmpty()) { throw new InvalidOperationException("No recievers specified"); } if (mailMessage.Body.IsNullOrWhiteSpace()) { throw new InvalidOperationException("No message body found"); } mailMessage.IsBodyHtml = true; if (host == null) { SmtpSection cfg = NetSectionGroup.GetSectionGroup(WebConfigurationManager.OpenWebConfiguration("~/web.config")).MailSettings.Smtp; host = cfg.Network.Host; port = cfg.Network.Port; credential = new System.Net.NetworkCredential(cfg.Network.UserName, cfg.Network.Password); } if (isAsync) { var thread = new Thread(() => { SendMailProc(mailMessage, host, port, credential); }) { IsBackground = true }; thread.Start(); } else { SendMailProc(mailMessage, host, port, credential); } }
public static SmtpSection GetCurrentSmtpSettings(out System.Configuration.Configuration config) { config = GetCurrentConfiguration(); // Get Mail settings. var settings = NetSectionGroup.GetSectionGroup(config).MailSettings; return(settings.Smtp); }
private static bool _SendMail(string toEmail, string toEmails, string bcc, string cc, string subject, string displayName, string body, Attachment[] attachs, int timeout, bool async, SendCompletedEventHandler sendCompleted) { try { SmtpSection smtp = NetSectionGroup.GetSectionGroup(WebConfigurationManager.OpenWebConfiguration(HttpContext.Current.Request.ApplicationPath)).MailSettings.Smtp; MailAddress from = new MailAddress(smtp.From, displayName, Encoding.UTF8); MailAddress to = new MailAddress(toEmail, null, Encoding.UTF8); MailMessage mail = new MailMessage(from, to); if (!string.IsNullOrWhiteSpace(toEmails)) { mail.To.Add(toEmails); } if (!string.IsNullOrWhiteSpace(bcc)) { mail.Bcc.Add(bcc); } if (!string.IsNullOrWhiteSpace(cc)) { mail.CC.Add(cc); } mail.Subject = subject; mail.SubjectEncoding = Encoding.UTF8; mail.Body = body; mail.BodyEncoding = Encoding.UTF8; if (attachs != null && attachs.Length > 0) { foreach (Attachment item in attachs) { mail.Attachments.Add(item); } } mail.IsBodyHtml = true; mail.DeliveryNotificationOptions = DeliveryNotificationOptions.OnFailure; SmtpClient smtpClient = new SmtpClient(smtp.Network.Host, smtp.Network.Port) { Timeout = timeout }; if (sendCompleted != null) { smtpClient.SendCompleted += sendCompleted; } if (async) { smtpClient.SendAsync(mail, mail); } else { smtpClient.Send(mail); mail.Dispose(); } return(true); } catch (Exception) { return(false); } }
/// <summary> /// 静态构造函数,初始化默认发件人。 /// </summary> static Sender() { MailSettingsSectionGroup ms = NetSectionGroup.GetSectionGroup( System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration("~/web.config")).MailSettings; defaultFrom = ms.Smtp.From; defaultHost = ms.Smtp.Network.Host; defaultPort = ms.Smtp.Network.Port; defaultUserName = ms.Smtp.Network.UserName; defaultPassword = ms.Smtp.Network.Password; }
/// <summary> /// 邮件发送类 /// 主机信息从配置文件中获取 /// 参考:ms-help://MS.VSCC.v80/MS.MSDN.v80/MS.NETDEVFX.v20.chs/dv_fxgenref/html/54f0f153-17e5-4f49-afdc-deadb940c9c1.htm /// </summary> /// <param name="mailFrom">发件人地址</param> /// <param name="mailTo">收件人地址</param> /// <param name="mailSubject">邮件主题</param> /// <param name="mailBody">邮件正文</param> public SMTP(string[] mailTo, string mailSubject, string mailBody) { System.Configuration.Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); MailSettingsSectionGroup mailSettings = NetSectionGroup.GetSectionGroup(config).MailSettings; mMailFrom = mailSettings.Smtp.From; mMailDisplyName = mailSettings.Smtp.From; mMailTo = mailTo; mMailCc = null; mMailBcc = null; mMailSubject = mailSubject; mMailBody = mailBody; mMailAttachments = null; mSMTPServer = mailSettings.Smtp.Network.Host; mSMTPPort = mailSettings.Smtp.Network.Port; mSMTPUsername = mailSettings.Smtp.Network.UserName; mSMTPPassword = mailSettings.Smtp.Network.Password; mSMTPSSL = false; }
public bool Send() { SmtpSection cfg = NetSectionGroup.GetSectionGroup(WebConfigurationManager.OpenWebConfiguration("~/Web.config")).MailSettings.Smtp; MailAddress mailAddress = new MailAddress(cfg.From); MailMessage mailMessage = new MailMessage(); mailMessage.From = mailAddress; mailMessage.Subject = subject; mailMessage.SubjectEncoding = Encoding.UTF8; mailMessage.Body = body; mailMessage.BodyEncoding = Encoding.Default; mailMessage.Priority = MailPriority.High; mailMessage.IsBodyHtml = isbodyhtml; if (to != null) { for (int i = 0; i < to.Length; i++) { mailMessage.To.Add(to[i]); } } if (cc != null) { for (int i = 0; i < cc.Length; i++) { mailMessage.CC.Add(cc[i]); } } try { if (attachments != null && attachments.Length > 0) { Attachment attachment = null; foreach (string path in attachments) { attachment = new Attachment(path); mailMessage.Attachments.Add(attachment); } } } catch (Exception err) { throw new Exception("附件处错误:" + err); } SmtpClient client = new SmtpClient(); client.Credentials = new System.Net.NetworkCredential(cfg.Network.UserName, cfg.Network.Password); //client.Port = cfg.Network.Port; client.Host = cfg.Network.Host; client.EnableSsl = false; try { client.Send(mailMessage); return(true); } catch (Exception err) { return(false); } }