1.打开VS建一个Windows 服务

2.下一步,填好项目名称和项目保存的地址

3.创建之后,右击、选择添加安装程序

4.添加安装程序之后会出现‘serviceInstaller1’=>在此控件上右键=>选择属性=>更改服务名、服务描述、服务显示名。

5.写代码

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Net.Mail;
using System.ServiceProcess;
using System.Text;
using System.Timers;namespace MyWindowsService
{public partial class Service1 : ServiceBase{public Service1(){InitializeComponent();System.Timers.Timer timer = new System.Timers.Timer();timer.Elapsed += new System.Timers.ElapsedEventHandler(TimedEvent);timer.Interval = 1000*60*60;//每60分钟执行一次timer.Enabled = true;}private void TimedEvent(object sender, ElapsedEventArgs e){WriteLog("开始发送");//发件人地址MailAddress from = new MailAddress("123@qq.com");MailMessage message = new MailMessage();message.Body = "test";message.IsBodyHtml = true;message.BodyEncoding = System.Text.Encoding.UTF8;//收件人地址message.To.Add("321@outlook.com");message.Subject = "青海长云暗雪山,孤城遥望玉门关。黄沙百战穿金甲,不破楼兰终不还!";message.SubjectEncoding = System.Text.Encoding.UTF8;message.From = from;//附件Attachment amAnnex = new Attachment(AppDomain.CurrentDomain.BaseDirectory + "\\log.txt");message.Attachments.Add(amAnnex);SmtpClient client = new SmtpClient();client.EnableSsl = true;client.Host = "smtp.qq.com";client.Port = 587;//邮箱账户和密码client.Credentials = new System.Net.NetworkCredential("123@qq.com", "123");try{client.Send(message);}catch (Exception ex){string mssage = ex.ToString();}}protected override void OnStart(string[] args){this.WriteLog("【服务启动】");}protected override void OnStop(){this.WriteLog("【服务停止】");}protected override void OnShutdown(){this.WriteLog("【计算机关闭】");}#region 记录日志/// <summary>/// 记录日志/// </summary>/// <param name="msg"></param>private void WriteLog(string msg){//该日志文件会存在windows服务程序目录下string path = AppDomain.CurrentDomain.BaseDirectory + "\\log.txt";FileInfo file = new FileInfo(path);if (!file.Exists){FileStream fs;fs = File.Create(path);fs.Close();}using (FileStream fs = new FileStream(path, FileMode.Append, FileAccess.Write)){using (StreamWriter sw = new StreamWriter(fs)){sw.WriteLine(DateTime.Now.ToString() + "   " + msg);}}}#endregion}
}

6.用管理员打开cmd=>%SystemRoot%\Microsoft.NET\Framework\v4.0.30319\InstallUtil.exe F:\MyCode\MyWindowsService\MyWindowsService\bin\Debug\MyWindowsService.exe

%SystemRoot%\Microsoft.NET\Framework\v4.0.30319\InstallUtil.exe   是你Framework版本下的InstallUtil.exe路径

F:\MyCode\MyWindowsService\MyWindowsService\bin\Debug\MyWindowsService.exe 是你程序的路径

7.启动服务用   net start MyService

停止服务用   net stop MyService

删除服务用   sc delete MyService

MyService为服务名

C# 建一个Windows 服务 定时发邮件相关推荐

  1. C# 如何创建一个Windows服务(Windows Service)

    Windows服务经常用来做一些定时任务处理,今天来说一下如何搭建一个Windows服务(基础篇,不喜勿喷). 1.搭建一个Windows Servier,我是VS2017 .NET FrameWor ...

  2. python定时发邮件功能

    我是python初学者,请多多指导,谢谢. 最近用python做了一个定时发邮件功能,位置https://www.aliyundrive.com/s/aRaFBwnYtxr,欢迎查看源码,阿里云盘下载 ...

  3. C#创建、安装一个Windows服务

    关于WIndows服务的介绍,之前写过一篇:http://blog.csdn.net/yysyangyangyangshan/article/details/7295739.可能这里对如何写一个服务不 ...

  4. 定时发邮件 linux,linux 定时巡检系统时间并且发邮件

    获取系统时间用到data命令 date 发送邮件用的是mail命令,这个需要安装,yum -y intall mail 配置smtp,添加如下 vi /etc/mail.rc setfrom=1234 ...

  5. Laravel5.6使用定时任务实现定时发邮件

    本文方法是利用Linux的crontab定时任务来协助实现Laravel的任务调度 一.创建项目 1.打开终端,执行命令:laravel new crontab,包括数据库,确保本地能正常运行.随后部 ...

  6. 创建一个windows服务的小程序及注意事项

    1,首先在vs中创建一个windows服务项目 会生成一个Service1.cs的文件  打开该文件 切换到代码视图  有两个方法   OnStart(string[] args)和OnStop()方 ...

  7. 写了一个Windows服务,通过C#模拟网站用户登录并爬取BUG列表查询有没有新的BUG,并提醒我...

    写了一个Windows服务,通过C#模拟网站用户登录并爬取BUG列表查询有没有新的BUG,并提醒我 1.HttpUtil工具类,用于模拟用户登录以及爬取网页: using System; using ...

  8. 新建第一个windows服务(Windows Service)

    首先,请原谅我是一个小白,一直到前段时间才在工作需要的情况下写了第一个windows服务.首先说一下为什么写这个windows服务吧,也就是什么需求要我来写这么一个东西.公司的项目中,需要一个预警功能 ...

  9. windows7未能连接一个windows服务(无法连接网络)的解决方法

    今天下午不知道怎么搞的,就搞的无线不可以用了,出现了个  "windows7未能连接一个windows服务"问题,而且连eclipse都打不开了. 晚上在网上找了一个方法,终于搞定 ...

最新文章

  1. 又有3位顶级数学家加盟华为,都是菲尔兹奖得主
  2. java数据结构读书笔记--引论
  3. Android复习03(Get请求访问网络[详解]、获取文章列表)
  4. 用java代码写美国时间_如何衡量Java代码所用的时间?
  5. mysql中where条件判断语句_MySQL Where 条件语句介绍和运算符小结
  6. sqlserver无法连接到服务器的常见原因和解决办法
  7. go接收文件服务器,请教:html5批量文件上传,服务端go怎么接收多个文件?
  8. C语言 const、volatile、const volatile限定符理解
  9. 二维数组的最大联通子数组和
  10. JAVA生成(可执行)Jar包的全面详解说明 [打包][SpringBoot][Eclipse][IDEA][Maven][Gradle][分离][可执行]...
  11. 我用 Python 集齐了支付宝五福!
  12. matlab电场线公式,matlab画电场线
  13. D3.js制作地图等值线与饼图
  14. excel制作项目甘特图
  15. COPYPASTE: AN AUGMENTATION METHOD FOR SPEECH EMOTION RECOGNITION -论文阅读
  16. Metal 案例03:大批量顶点数据的图形渲染
  17. System.InvalidOperationException: Response Content-Length mismatch: too few bytes written (0 of 1628
  18. Windows 系统优化大全(完整)
  19. IOT设备配网绑定通讯流程
  20. JavaScript模板引擎Template.js

热门文章

  1. 青龙面板-饿了么吃货豆
  2. 计算机窗口置顶,将想要的窗口一直置顶的具体操作步骤介绍
  3. ltspice语言中文_ltspice中文教程
  4. 总结 | 2018 年终总结
  5. 关于在微软学生资源中心下载软件
  6. 动态规划------走楼梯问题
  7. 如何统计文章中的高频词
  8. 【hihocoder1082】然而沼跃鱼早就看穿了一切——字符串
  9. Python实战——自动生成情人节对女朋友表白玫瑰花、爱心,以及用Python画一颗樱花树,愿祖国繁花与共!
  10. 《Learn to Augment: Joint Data Augmentation and Network Optimization for Text》