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);
                }
               
            }
        }

  • 相关阅读:
    【大厂面试】字节跳动、京东等大厂面试题分享,已拿字节offer~
    听说这十道面试题,把百分之八十的程序员都淘汰了?不是吧,阿sir
    阿里大神的刷题笔记.pdf
    在家学了6个月,拿到阿里offer!
    【面试题】2020年底总结200道带答案的常见Java面试题!
    面试一家小公司,被问了 1 个小时并发编程。。全程已记录!
    分享一份技术书籍《Java 8 》PDF版,可自行下载
    Delphi的TDataSetProvider、TDataSet、TAdoQuery、TDataSource、TDataModule控件的组合使用
    初学Delphi与sql server的存储过程
    delphi简单的分页实现(高手可以不看)
  • 原文地址:https://www.cnblogs.com/chillsrc/p/1091967.html
Copyright © 2011-2022 走看看