Example #1
0
        private void mnuDelete_Click(object sender, EventArgs e)
        {
            if (dataGridView.Rows.Count == 0 || lastID < 1)
            {
                return;
            }

            SendSetting setting = SendSettingHelper.SelectByID(1);

            if (setting.IsNull() || setting.TemplateID.IsNull())
            {
                return;
            }

            if (setting.TemplateID == lastID && !this.checkBoxStatus.Checked)
            {
                MessageBox.Show("发送邮件设置使用了此模板,该模板不能删除", "系统提示");
                return;
            }

            if (MessageBox.Show("是否删除此邮件模板?", " 系统提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == System.Windows.Forms.DialogResult.OK)
            {
                HtmlTemplateHelper.DeleteByID(lastID);
                HtmlTemplateHelper.ClearCacheAll();
                dataGridView.Rows.RemoveAt(currentIndex);
                getRowData();
            }
            tabControl1.SelectedTab = tabControl1.TabPages[0];
        }
Example #2
0
        private void dataGridView_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            tabControl1.SelectedTab = tabControl1.TabPages[0];
            currentIndex            = e.RowIndex;
            if (currentIndex < 0)
            {
                return;
            }
            lastID = dataGridView.Rows[e.RowIndex].Cells[0].Value.ToBigInt(0);
            if (lastID < 1)
            {
                return;
            }
            HtmlTemplate info = HtmlTemplateHelper.SelectListByAll().Where(p => p.TemplateID == lastID).FirstOrDefault();

            if (info.IsNull() || info.TemplateID.IsNull())
            {
                return;
            }

            this.txtSubject.Text   = info.Subject;
            txtSubject.Text        = info.Subject;
            txtBody.Text           = info.Body;
            txtShowName.Text       = info.ShowName;
            checkBoxIsHTML.Checked = info.IsHTML == true ? true : false;
            checkBoxStatus.Checked = info.Status == 0 ? true : false;
        }
Example #3
0
        private void mnuEdit_Click(object sender, EventArgs e)
        {
            SendSetting setting = SendSettingHelper.SelectByID(1);

            if (setting.IsNull() || setting.TemplateID.IsNull())
            {
                return;
            }

            if (setting.TemplateID == lastID && !this.checkBoxStatus.Checked)
            {
                MessageBox.Show("发送邮件设置使用了此模板,该模板不能不可用", "系统提示");
                return;
            }

            tabControl1.SelectedTab = tabControl1.TabPages[0];
            if (currentIndex < 0 || lastID < 1)
            {
                return;
            }
            HtmlTemplate info = new HtmlTemplate();

            info.Subject    = this.txtSubject.Text;
            info.Body       = this.txtBody.Text;
            info.IsHTML     = this.checkBoxIsHTML.Checked ? true : false;
            info.Status     = this.checkBoxStatus.Checked ? 0 : 1;
            info.ShowName   = this.txtShowName.Text;
            info.TemplateID = lastID;
            HtmlTemplateHelper.Update(info);
            dataGridView.Rows[currentIndex].Cells[1].Value = info.Subject;
            HtmlTemplateHelper.ClearCacheAll();
            MessageBox.Show("保存成功", "系统提示");
        }
Example #4
0
 /// <summary>
 /// 清理缓存
 /// </summary>
 private void clear()
 {
     SmtpListHelper.ClearCacheAll(); smtpList         = null;
     EmailListHelper.ClearCacheAll(); emailList       = null;
     SendSettingHelper.ClearCacheAll(); sendSetting   = null;
     HtmlTemplateHelper.ClearCacheAll(); templateList = null;
     IpHistoryHelper.ClearCacheAll();
 }
Example #5
0
        public static void Templates(bool exit = false)
        {
            WriteLog("templates(ts) 显示模板列表");
            WriteLog("===============================================================================");
            IList <HtmlTemplate> templateList = HtmlTemplateHelper.SelectListByAll();

            foreach (var t in templateList)
            {
                WriteLog("{0}-{1}", t.TemplateID, t.Subject);
            }
            WriteLog("count:{0}", templateList.Count);
            WriteLog("END");
            Input(exit);
        }
Example #6
0
 private void frmTemplate_Load(object sender, EventArgs e)
 {
     ThreadPool.QueueUserWorkItem(new WaitCallback((o) => {
         frmMain.Instance.ShowStatusText("正在加载模版数据....");
         dataGridView.BeginInvoke(new Pub.Class.Action(() => {
             dataGridView.DataSource = HtmlTemplateHelper.SelectListByAll().OrderByDescending(p => p.TemplateID).Select(p => new {
                 编号   = p.TemplateID,
                 邮件主题 = p.Subject
             }).ToDataTable();
             getRowData();
             frmMain.Instance.ShowStatusText("模版数据加载完成!");
         }));
     }), null);
 }
Example #7
0
        private void frmSendSetting_Activated(object sender, EventArgs e)
        {
            frmMain.Instance.ShowStatusText("正在数据....");
            HtmlTemplateHelper.ClearCacheAll();
            cboTemplate.DataSource    = null;;
            cboTemplate.ValueMember   = "TemplateID";
            cboTemplate.DisplayMember = "Subject";
            cboTemplate.DataSource    = HtmlTemplateHelper.SelectListByAll().Where(p => p.Status == 0).OrderByDescending(p => p.TemplateID).Select(p => new { p.TemplateID, p.Subject }).ToDataTable();

            DataTable dt = new DataTable()
                           .AddColumn <int>("id")
                           .AddColumn <string>("name")
                           .AddRow(0, "等待发送")
                           .AddRow(1, "正在发送")
                           .AddRow(2, "已发送完成");

            this.cboStatus.DataSource    = dt;
            this.cboStatus.DisplayMember = "name";
            this.cboStatus.ValueMember   = "id";
            this.cboStatus.SelectedIndex = 0;

            sendSetting = SendSettingHelper.SelectByID(1);
            if (sendSetting.IsNull() || sendSetting.SettingID.IsNull())
            {
                return;
            }

            cboTemplate.SelectedValue = sendSetting.TemplateID;
            if (sendSetting.ConnectType == 0)
            {
                rdoRoute.Checked = true;
            }
            if (sendSetting.ConnectType == 1)
            {
                rdoModel.Checked = true;
            }
            if (sendSetting.ConnectType == 2)
            {
                rdoTY.Checked = true;
            }
            txtIPInterval.Text      = sendSetting.IPInterval.ToString();
            txtSendInterval.Text    = sendSetting.SendInterval.ToString();
            txtSmtpInterval.Text    = sendSetting.SmtpInterval.ToString();
            txtMaxRetryCount.Text   = sendSetting.MaxRetryCount.ToString();
            txtDeleteInterval.Text  = sendSetting.DeleteInterval.ToString();
            txtSendRetryCount.Text  = sendSetting.SendRetryCount.ToString();
            cboStatus.SelectedValue = sendSetting.Status;
            cboStatus.Tag           = sendSetting.Status.Value;
            frmMain.Instance.ShowStatusText("数据加载完成!");
        }
Example #8
0
        /// <summary>
        /// 开始群发邮件
        /// </summary>
        /// <param name="msg">通知消息</param>
        /// <param name="done">完成执行</param>
        public void Start(Action <string> msg = null, Pub.Class.Action done = null)
        {
            exit   = false;
            uiMsg  = msg; uiDone = done;
            thread = new Thread(() => {
                smtpList     = SmtpListHelper.SelectListByAll();
                sendSetting  = SendSettingHelper.SelectByID(1);
                templateList = HtmlTemplateHelper.SelectListByAll().Where(p => p.Status == 0).ToList();

                sendStart();
            });
            thread.IsBackground = true;
            thread.Start();
        }
Example #9
0
        private void mnuAdd_Click(object sender, EventArgs e)
        {
            tabControl1.SelectedTab = tabControl1.TabPages[0];
            HtmlTemplate info = new HtmlTemplate();

            info.Status     = this.checkBoxStatus.Checked ? 0 : 1;
            info.Subject    = this.txtSubject.Text;
            info.Body       = this.txtBody.Text;
            info.IsHTML     = this.checkBoxIsHTML.Checked ? true : false;
            info.ShowName   = this.txtShowName.Text;
            info.CreateTime = DateTime.Now.ToDateTime().ToDateTime();
            HtmlTemplateHelper.Insert(info);
            HtmlTemplateHelper.ClearCacheAll();
            frmTemplate_Load(sender, e);
        }
Example #10
0
        public static void Config(bool exit = false)
        {
            WriteLog("config(c) 显示发送配置");
            WriteLog("===============================================================================");
            SendSetting          sendSetting  = SendSettingHelper.SelectByID(1);
            IList <HtmlTemplate> templateList = HtmlTemplateHelper.SelectListByAll();

            WriteLog("邮件模版:{0}", templateList.Where(p => p.TemplateID == sendSetting.TemplateID).FirstOrDefault().IfNull(new HtmlTemplate()).Subject ?? "无");
            WriteLog("网络连接类型:{0}", NetHelper.GetNetName(sendSetting.ConnectType.Value));
            WriteLog("发送邮件时间间隔(毫秒):{0}", sendSetting.SendInterval);
            WriteLog("发送多少封邮件后更换IP:{0}", sendSetting.IPInterval == 0 ? "0不更换IP" : sendSetting.IPInterval.ToString());
            WriteLog("发送多少封邮件后更换SMTP:{0}", sendSetting.SmtpInterval == 0 ? "0不更换SMTP" : sendSetting.SmtpInterval.ToString());
            WriteLog("清理多少分钟之前的历史IP:{0}", sendSetting.DeleteInterval);
            WriteLog("检测网络连接重试次数:{0}", sendSetting.MaxRetryCount);
            WriteLog("发送邮件失败重试次数:{0}", sendSetting.SendRetryCount);
            WriteLog("发送状态:{0}", sendSetting.Status == 0 ? "等待发送" : sendSetting.Status == 1 ? "正在发送" : "已发送完成");
            WriteLog("-------------------------------------------------------------------------------");
            WriteLog("可用邮箱数量:{0}".FormatWith(new SQL().From(EmailList._).Count(EmailList._EmailAddress).ToScalar().ToString()));
            WriteLog("可用SMTP数量:{0}".FormatWith(new SQL().From(SmtpList._).Count(SmtpList._SmtpServer).ToScalar().ToString()));
            WriteLog("END");
            Input(exit);
        }
Example #11
0
        private void getRowData()
        {
            if (dataGridView.Rows.Count > 0)
            {
                int count = dataGridView.Rows.Count;
                currentIndex = currentIndex == -1 ? 0 : (currentIndex == count ? currentIndex - 1 : currentIndex);
                lastID       = dataGridView.Rows[currentIndex].Cells[0].Value.ToBigInt(0);
                if (lastID < 1)
                {
                    return;
                }
                HtmlTemplate info = HtmlTemplateHelper.SelectListByAll().Where(p => p.TemplateID == lastID).FirstOrDefault();
                if (info.IsNull() || info.TemplateID.IsNull())
                {
                    return;
                }

                txtSubject.Text        = info.Subject;
                txtBody.Text           = info.Body;
                txtShowName.Text       = info.ShowName;
                checkBoxIsHTML.Checked = info.IsHTML == true ? true : false;
                checkBoxStatus.Checked = info.Status == 0 ? true : false;
                info.CreateTime        = System.DateTime.Now.ToDateTime().ToDateTime();
                mnuEdit.Enabled        = true;
                mnuDelete.Enabled      = true;
            }
            else
            {
                this.txtSubject.Text        = "";
                this.checkBoxIsHTML.Checked = false;
                this.checkBoxStatus.Checked = true;
                this.txtBody.Text           = "";
                mnuEdit.Enabled             = false;
                mnuDelete.Enabled           = false;
            }
        }