Exemplo n.º 1
0
        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;
        }
Exemplo n.º 2
0
 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);
     }
 }
Exemplo n.º 3
0
        public static SmtpSection GetCurrentSmtpSettings(out System.Configuration.Configuration config)
        {
            config = GetCurrentConfiguration();
            // Get Mail settings.
            var settings = NetSectionGroup.GetSectionGroup(config).MailSettings;

            return(settings.Smtp);
        }
Exemplo n.º 4
0
 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);
     }
 }
Exemplo n.º 5
0
        /// <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;
        }
Exemplo n.º 6
0
        /// <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;
        }
Exemplo n.º 7
0
        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);
            }
        }