C#定时邮件推送功能

本文以winform为例,做一个定时邮件推送的后台程序

1、创建一个新线程

private void btnStart_Click(object sender, EventArgs e)
        {
            Thread thread = new Thread(SendMail);//创建线程
            if (st==false)//第一次点击为运行程序,第二次点击为停止程序
            {
                st = true;
                btnStart.Text = "停止程序";
             
                thread.IsBackground = true;
                thread.Start();
            }
            else
            {
                st = false;
                btnStart.Text = "开始执行";
                thread.Abort();
            }              
           
        }

2、编写邮件功能

private void SendMail()
        {
            Action<int> action = delegate (int i) { this.textBox1.Text = sendtimes.ToString(); };//创建一个委托,用于显示邮件发送的次数
            while (st == true)
            {
                if ("此处填入邮件定时条件,如每天早上8点")
                {                                     
                    //创建邮件类
                    MailMessage msg = new MailMessage();
                    msg.IsBodyHtml = true;//设置邮件格式
                    //邮件的发送的地址
                    msg.From = new MailAddress("输入发送邮件的地址");
                    //邮件接收地址
                    msg.To.Add(new MailAddress("输入接收邮件的地址"));
                    msg.CC.Add("抄送人员地址");
                    //邮件标题 
                    msg.Subject = "此处填入邮件标题";
                    //msg.SubjectEncoding = Encoding.UTF8;//邮件标题编码    
                    //邮件内容
                    msg.Body = "填入邮件内容";
                    SmtpClient src = new SmtpClient();
                    src.Credentials = new                   
                    System.Net.NetworkCredential("发送者的邮箱账号", "发送者邮箱密码");//登录验证,相当于要登陆发送者的邮箱账号                  
                    //网易163免费smtp.163.com
                    //qq是smtp.qq.com   其他可自行查找  
                    src.Host = @"smtp.qq.com";//服务器地址
                    try
                    {
                        src.Send(msg);
                        sendtimes++;

                    }

                    catch (System.Net.Mail.SmtpException ex)
                    {
                        MessageBox.Show("发送出错");
                    }
                    if (textBox1.InvokeRequired)//发送次数显示
                    {
                        textBox1.Invoke(action, sendtimes);
                    }
                    else
                    {
                        textBox1.Text = sendtimes.ToString();

                    }
                    Thread.Sleep(24 * 60 * 60 * 1000);//发送成功后间隔时间,按实际需求设置
                }
                else
                {
                    Thread.Sleep(12 * 60 * 60 * 1000);//未发送邮件的程序时间间隔,按实际需求设置
                }

            }
        }

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值