示例#1
0
        private void ValidateEmail(EmailSendServer email, MessageDisplay msgDisplay, int line)
        {
            if (string.IsNullOrEmpty(email.SmtpServer))
            {
                msgDisplay.AddError(new CustomError("SmtpServer", line, "smtp服务器地址不能为空!"));
            }

            if (string.IsNullOrEmpty(email.SenderEmail))
            {
                msgDisplay.AddError(new CustomError("SenderEmail", line, "发送端Email地址不能为空"));
            }
            else if (!emailreg.IsMatch(email.SenderEmail))
            {
                msgDisplay.AddError(new CustomError("SenderEmail", line, "发送端Email地址格式错误"));
            }


            if (string.IsNullOrEmpty(email.SmtpServerAccount))
            {
                msgDisplay.AddError(new CustomError("SmtpServerAccount", line, "邮箱用户名不能为空"));
            }

            if (string.IsNullOrEmpty(email.SmtpServerPassword))
            {
                msgDisplay.AddError(new CustomError("SmtpServerPassword", line, "邮箱密码不能为空"));
            }

            if (email.Port > 65535 || email.Port < 2)
            {
                msgDisplay.AddError(new CustomError("Port", line, "SMTP服务器端口错误"));
            }
        }
示例#2
0
        private void SaveEmailSettings()
        {
            MessageDisplay            msgDisplay = CreateMessageDisplay("smtpserver", "SmtpServerAccount", "SmtpServerPassword", "SenderEmail", "Port");
            int                       line       = 0;
            EmailSendServerCollection emails     = new EmailSendServerCollection();

            int[] emailIDs = _Request.GetList <int>("emailids", Method.Post, new int[0]);

            EmailSettings settings = new EmailSettings();

            bool enableSend = _Request.Get <bool>("EnableSendEmail", Method.Post, false);

            if (enableSend)
            {
                foreach (int i in emailIDs)
                {
                    bool            isnew     = _Request.Get <bool>("isnew." + i, Method.Post, false);
                    string          keysubfix = isnew ? ".new." + i : "." + i;
                    EmailSendServer email     = new EmailSendServer();

                    email.EmailID            = i;
                    email.SmtpServer         = _Request.Get("smtpserver" + keysubfix, Method.Post);
                    email.SmtpServerAccount  = _Request.Get("SmtpServerAccount" + keysubfix, Method.Post);
                    email.SmtpServerPassword = _Request.Get("SmtpServerPassword" + keysubfix, Method.Post);
                    email.SenderEmail        = _Request.Get("senderemail" + keysubfix, Method.Post);
                    email.EnableSSL          = _Request.Get <bool>("EnableSSL" + keysubfix, Method.Post, false);
                    email.Port = _Request.Get <int>("Port" + keysubfix, Method.Post, 0);

                    ValidateEmail(email, msgDisplay, line);

                    emails.Add(email);

                    line++;
                }
                settings.SendServers = emails;

                if (emails.Count == 0)
                {
                    msgDisplay.AddError(new CustomError("开启邮件发送功能时至少填写一个Email帐号"));
                }
            }
            else
            {
                settings.SendServers = AllSettings.Current.EmailSettings.SendServers;
            }

            settings.EnableSendEmail = enableSend;

            if (!msgDisplay.HasAnyError())
            {
                SettingManager.SaveSettings(settings);
            }

            m_Emails = settings.SendServers;
        }
示例#3
0
 public override void Send()
 {
     EmailSendServer sendServer = new EmailSendServer();
     sendServer.SmtpServer = m_SmtpServer;
     sendServer.Port = m_SmtpServerPort;
     sendServer.SmtpServerAccount = m_SmtpServerAccount;
     sendServer.SmtpServerPassword = m_SmtpServerPassword;
     sendServer.SenderEmail = m_sendEmail;
     sendServer.EnableSSL = m_enableSSL;
     sendServer.SendMail(this);
 }
示例#4
0
        private void SaveEmailSettings()
        {
            MessageDisplay msgDisplay = CreateMessageDisplay("smtpserver","SmtpServerAccount","SmtpServerPassword","SenderEmail","Port");
            int line = 0;
            EmailSendServerCollection emails = new EmailSendServerCollection();
            int[] emailIDs = _Request.GetList<int>("emailids", Method.Post, new int[0]);

            EmailSettings settings = new EmailSettings();

            bool enableSend = _Request.Get<bool>("EnableSendEmail", Method.Post, false);
         
            if (enableSend)
            {
                foreach (int i in emailIDs)
                {
                    bool isnew = _Request.Get<bool>("isnew." + i, Method.Post, false);
                    string keysubfix = isnew ? ".new." + i : "." + i;
                    EmailSendServer email = new EmailSendServer();

                    email.EmailID = i;
                    email.SmtpServer = _Request.Get("smtpserver" + keysubfix, Method.Post);
                    email.SmtpServerAccount = _Request.Get("SmtpServerAccount" + keysubfix, Method.Post);
                    email.SmtpServerPassword = _Request.Get("SmtpServerPassword" + keysubfix, Method.Post);
                    email.SenderEmail =_Request.Get("senderemail"+keysubfix,Method.Post);
                    email.EnableSSL = _Request.Get<bool>("EnableSSL" + keysubfix, Method.Post, false);
                    email.Port = _Request.Get<int>("Port" + keysubfix, Method.Post,0);

                    ValidateEmail(email,msgDisplay,line);

                    emails.Add(email);

                    line++;
                }
                settings.SendServers = emails;

                if (emails.Count == 0)
                {
                    msgDisplay.AddError(new CustomError("开启邮件发送功能时至少填写一个Email帐号"));
                }
            }
            else
            {
                settings.SendServers = AllSettings.Current.EmailSettings.SendServers;
            }

            settings.EnableSendEmail = enableSend;

            if (!msgDisplay.HasAnyError())
            {
                SettingManager.SaveSettings(settings);
            }

            m_Emails = settings.SendServers;
        }
示例#5
0
        public override void Send()
        {
            EmailSendServer sendServer = new EmailSendServer();

            sendServer.SmtpServer         = m_SmtpServer;
            sendServer.Port               = m_SmtpServerPort;
            sendServer.SmtpServerAccount  = m_SmtpServerAccount;
            sendServer.SmtpServerPassword = m_SmtpServerPassword;
            sendServer.SenderEmail        = m_sendEmail;
            sendServer.EnableSSL          = m_enableSSL;
            sendServer.SendMail(this);
        }
示例#6
0
        public static void GoMail()
        {
            EmailSendServer emailSendServer = new EmailSendServer()
            {
                SenderEmail        = Configs.BaseConfig.MailUser,
                SmtpServer         = Configs.BaseConfig.MailSmtp,
                SmtpServerAccount  = Configs.BaseConfig.MailUser,
                SmtpServerPassword = Configs.BaseConfig.MailPass
            };
            EmailSendServer emailSendServer1 = emailSendServer;
            int             num       = (new Random()).Next(0, 99999);
            string          str       = SecurityUtil.MD5(num.ToString()).Substring(8, 5);
            EmailBase       emailBase = new EmailBase();

            string[] webSiteName = new string[] { Localization.Get("【"), Configs.BaseConfig.WebSiteName, Localization.Get("】即时采集报告("), str, ")" };
            emailBase.Subject = string.Concat(webSiteName);
            emailBase.Content = MdiForm.GetMail();
            string[] strArrays = Configs.BaseConfig.MailTitle.Trim().Split(new char[] { ',' });
            int      num1      = 0;

            while (true)
            {
                if (num1 < (int)strArrays.Length)
                {
                    string str1 = strArrays[num1];
                    if (str1 == string.Empty)
                    {
                        break;
                    }
                    else
                    {
                        emailBase.ToEmail = str1;
                        emailSendServer1.SendMail(emailBase);
                        num1++;
                    }
                }
                else
                {
                    break;
                }
            }
        }
示例#7
0
        public virtual void Send()
        {
            EmailSettings settings = AllSettings.Current.EmailSettings;

            if (settings.EnableSendEmail == false)
            {
                return;
            }

            if (string.IsNullOrEmpty(m_ToEmail))
            {
                return;
            }

            EmailSendServerCollection servers = settings.SendServers;

            EmailSendServer selected = null;

            if (servers.Count > 1)
            {
                Random rnd      = new Random();
                int    rndIndex = rnd.Next(0, 10000000) % servers.Count;
                selected = servers[rndIndex];
            }
            else if (servers.Count == 1)
            {
                selected = servers[0];
            }
            else
            {
                return;
            }


            selected.BeginSendMail(this);

            //selected.UseTimes++;
            //return selected;
        }
示例#8
0
        private void ValidateEmail( EmailSendServer email,MessageDisplay msgDisplay,int line )
        {
            if ( string.IsNullOrEmpty(email.SmtpServer))
            {
                msgDisplay.AddError(new CustomError("SmtpServer", line, "smtp服务器地址不能为空!"));
            }

            if (string.IsNullOrEmpty(email.SenderEmail))
            {
                msgDisplay.AddError(new CustomError("SenderEmail", line, "发送端Email地址不能为空"));
            }
            else if (!emailreg.IsMatch(email.SenderEmail))
            {
                msgDisplay.AddError(new CustomError("SenderEmail", line, "发送端Email地址格式错误"));
            }
            

            if (string.IsNullOrEmpty(email.SmtpServerAccount))
            {
                msgDisplay.AddError(new CustomError("SmtpServerAccount",line,"邮箱用户名不能为空"));
            }

            if (string.IsNullOrEmpty(email.SmtpServerPassword))
            {
                msgDisplay.AddError(new CustomError("SmtpServerPassword", line, "邮箱密码不能为空"));
            }

            if (email.Port > 65535 || email.Port < 2)
            {
                msgDisplay.AddError(new CustomError("Port", line, "SMTP服务器端口错误"));
            }
        }
示例#9
0
        public static void ConvertEmailSettingsAndKeywords()
        {

            string sql = @"

IF EXISTS (SELECT * FROM sysobjects WHERE [type] = N'U' AND [name] = N'System_Max_Settings') BEGIN
    SELECT * FROM System_Max_Settings WHERE Catalog='EmailSetting' OR Catalog='KeywordSetting';
END
ELSE
    SELECT '' AS SettingKey;
";
            EmailSettings setting = new EmailSettings();

            EmailSendServer server = new EmailSendServer();

            setting.SendServers.Add(server);

            ContentKeywordSettings keywordsetting = new ContentKeywordSettings();

            using (SqlConnection connection = new SqlConnection(Settings.Current.IConnectionString))
            {
                connection.Open();
                SqlCommand command = new SqlCommand(sql, connection);
                command.CommandTimeout = 60;
                try
                {

                    using (SqlDataReader reader = command.ExecuteReader())
                    {
                        while (reader.Read())
                        {

                            string key = reader.GetString(reader.GetOrdinal("SettingKey"));

                            if (key == string.Empty)
                                return;

                            string value = reader.GetString(reader.GetOrdinal("SettingValue"));

                            switch (key.ToLower())
                            {
                                case "emailaddress":
                                    server.SenderEmail = value;
                                    break;
                                case "openemail":
                                    setting.EnableSendEmail = (value.ToLower() == "true");
                                    break;
                                case "stmpserver":
                                    server.SmtpServer = value;
                                    break;
                                case "stmpserverpassword":
                                    server.SmtpServerPassword = value;
                                    break;
                                case "stmpserverusername":
                                    server.SmtpServerAccount = value;
                                    break;
                                case "denykeywords":
                                    keywordsetting.BannedKeywords = new KeywordRegulation();
                                    keywordsetting.BannedKeywords.SetValue(value);
                                    break;
                                case "requireapprovedkeywords":
                                    keywordsetting.ApprovedKeywords = new KeywordRegulation();
                                    keywordsetting.ApprovedKeywords.SetValue(value);
                                    break;
                                case "replacekeywords":
                                    keywordsetting.ReplaceKeywords = new KeywordReplaceRegulation();
                                    keywordsetting.ReplaceKeywords.SetValue(value);
                                    break;
                                default: break;
                            }
                        }
                    }

                    server.Port = 25;

                    sql = @"
UPDATE bx_Settings SET [Value] = @SettingString WHERE TypeName = 'MaxLabs.bbsMax.Settings.EmailSettings' AND [Key] = '*';
IF @@ROWCOUNT = 0
    INSERT INTO bx_Settings ([Key], [Value], [TypeName]) VALUES ('*', @SettingString, 'MaxLabs.bbsMax.Settings.EmailSettings');

UPDATE bx_Settings SET [Value] = @KeywordSettingString WHERE TypeName = 'MaxLabs.bbsMax.Settings.ContentKeywordSettings' AND [Key] = '*';
IF @@ROWCOUNT = 0
    INSERT INTO bx_Settings ([Key], [Value], [TypeName]) VALUES ('*', @KeywordSettingString, 'MaxLabs.bbsMax.Settings.ContentKeywordSettings');
";
                    command.CommandText = sql;

                    SqlParameter param = new SqlParameter("@SettingString", SqlDbType.NText);
                    param.Value = setting.ToString();
                    command.Parameters.Add(param);

                    SqlParameter param2 = new SqlParameter("@KeywordSettingString", SqlDbType.NText);
                    param2.Value = keywordsetting.ToString();
                    command.Parameters.Add(param2);

                    command.ExecuteNonQuery();


                }
                catch (Exception ex)
                {
                    CreateLog(ex);
                    throw new Exception("����Emailϵͳ���ú͹ؼ�������ʧ��" + ex.Message + sql);
                }
                finally
                {
                    connection.Close();
                }
            }
        }