zoukankan      html  css  js  c++  java
  • 使用windows服务定时发送email核心代码

    public partial class Service1 : ServiceBase
        {
            private Thread _thread;
            private bool StopThreads = false;
            private bool HasSentMail = false;  
            public Service1()
            {
                InitializeComponent();
                try
                {
                    _thread = new Thread(new ThreadStart(sendmail));
                }
                catch (Exception e)
                { }
            }

            protected override void OnStart(string[] args)
            {
                _thread.Start();
            }

            protected override void OnStop()
            {
                // TODO: 在此处添加代码以执行停止服务所需的关闭操作。
                StopThreads = true;
                RunLog.WriteLog("Service stop at:");
            }
            private void sendmail()
            {
                RunLog.WriteLog("Service start at:");
                while (!StopThreads)
                {
                    if (DateTime.Now.Day==28 && DateTime.Now.Hour==9 && DateTime.Now.Minute<=10 && HasSentMail==false)
                    {
                       
                        MailMessage mm;
                        mm = new MailMessage();
                        StringBuilder ensb = new StringBuilder();
                        StringBuilder cnsb = new StringBuilder();
                        mm.From = new MailAddress("abc@domain.com");
                        mm.Subject = "Test";
                        mm.BodyEncoding = System.Text.Encoding.UTF8;
                        mm.BodyEncoding =Encoding.UTF8;
                        mm.IsBodyHtml=true;
                        DataSet ds = sgbox_namelistDac.GetList();
                        SmtpClient sc = new SmtpClient("smtp.domain.com");
                        for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
                        {
                            mm.Body = "<htmp><body><font size=2 face='Arial, Helvetica, sans-serif'>Dear Supplier </font>" + ensb.ToString() + "<font size=2 face='Arial, Helvetica, sans-serif'>尊敬的供应商 " + cnsb.ToString();
                            mm.To.Clear();
                            mm.To.Add(new MailAddress(ds.Tables[0].Rows[i]["email"].ToString().Trim()));
                            try
                            {
                                sc.Send(mm);
                                RunLog.WriteLog("Sent at:");
                            }
                            catch (Exception e)
                            {
                                RunLog.WriteLog("SMTP发送失败:" + e.Message);
                                return;
                            }
                            Thread.Sleep(3000);
                        }

                        HasSentMail = true;
                    }
                    else
                    {
                        HasSentMail = false;
                    }
                    Thread.Sleep(600000);
                }
               
            }
        }

  • 相关阅读:
    vue 自定义全局按键修饰符
    Vue 过滤器
    v-if、v-show 指令
    其他内置函数
    python中序列化和反序列化
    jmeter图形化html报告核心指标介绍
    jmeter在linux系统下如何进行压力测试
    文件操作的其他方法
    文件处理操作
    内置函数reduce()
  • 原文地址:https://www.cnblogs.com/chillsrc/p/1091967.html
Copyright © 2011-2022 走看看