Windows服务实现自动发送邮件通知

简介

微软的windows服务,以前以NT服务著称。它可以使你在自己的系统会话的基础上,创建一个长时间运行的可执行应用程序。这些服务可以在开机的时候自动启动,可以中止、重启,并且不现实任何用户界面。在你使用服务器或者你需要在一个机器上长期运行,且不能干扰其他用户使用该电脑的时候,服务的特性,就使它成为了非常理想的一种技术。
一个Windows服务可以由微软的VS或者Embarcadero Delphi等开发工具来创建。为了让程序真正成为windows系统的服务,就需要程序可以被服务控制管理器启动、停止、中止。服务控制管理器是一个启动和停止服务的一个windows操作系统的组件。
代码

     打开 Visual Studio

     打开文件->新建->项目

     选择Windows 服务

     右键Service1.cs 在下拉菜单中选择属性

     在属性窗体中单击,添加安装程序:

 

 在属性窗体中单击,添加安装程序:

 

右键serviceInstaller1,选择属性

改变DisplayName, ServiceName为SeraMailService

启动类型为自动启动

 

右键serviceProcessInstaller1 ,之后选择属性

更改用户为LocalSystem

右键Service1.cs设计文件,选择查看代码

 

在OnStart方法中,输入下列代码:

 代码如下 复制代码

public void GetMail(object sender, System.Timers.ElapsedEventArgs args)
        {
            NetworkCredential cred = new NetworkCredential("email@lafarge.com", "Password");
            MailMessage msg = new MailMessage();
            msg.To.Add("email@apsissolutions.com");
            msg.Subject = "Welcome JUBAYER";
 
            msg.Body = "You Have Successfully Entered to Sera's World!!!";
            msg.From = new MailAddress("email@apsissolutions.com"); // Your Email Id
            SmtpClient client = new SmtpClient("smtp.gmail.com", 587);
            SmtpClient client1 = new SmtpClient("smtp.mail.yahoo.com", 465);
            client.Credentials = cred;
            client.EnableSsl = true;
            client.Send(msg);
        }

为了使这个方法一直运行,我们需要添加时距。
在onload 方法之前,插入下列代码:

 代码如下 复制代码

System.Timers.Timer createOrderTimer;

在onStart 方法中,输入下列代码:

 代码如下 复制代码

createOrderTimer = new System.Timers.Timer();
createOrderTimer.Elapsed += new System.Timers.ElapsedEventHandler(GetMail);
createOrderTimer.Interval = 180000;//Set Three minutes intervals
createOrderTimer.Enabled = true;
createOrderTimer.AutoReset = true;
createOrderTimer.Start();

全部代码如下:

 代码如下 复制代码

System.Timers.Timer createOrderTimer;
 
        public Service1()
        {
            InitializeComponent();
        }
 
        protected override void OnStart(string[] args)
        {
            createOrderTimer = new System.Timers.Timer();
            createOrderTimer.Elapsed += new System.Timers.ElapsedEventHandler(GetMail);
            createOrderTimer.Interval = 500;
            createOrderTimer.Enabled = true;
            createOrderTimer.AutoReset = true;
            createOrderTimer.Start();          
        }
 
        public void GetMail(object sender, System.Timers.ElapsedEventArgs args)
        {
            NetworkCredential cred = new NetworkCredential("email@lafarge.com", "Password");
            MailMessage msg = new MailMessage();
            msg.To.Add("email@apsissolutions.com");
            msg.Subject = "Welcome JUBAYER";
 
            msg.Body = "You Have Successfully Entered to Sera's World!!!";
            msg.From = new MailAddress("email@apsissolutions.com"); // Your Email Id
            SmtpClient client = new SmtpClient("smtp.gmail.com", 587);
            SmtpClient client1 = new SmtpClient("smtp.mail.yahoo.com", 465);
            client.Credentials = cred;
            client.EnableSsl = true;
            client.Send(msg);
        }

现在用Ctrl+Shift+B编译该服务。
在命令行模式下,输入代码,来安装InstallUtil.exe。

 代码如下 复制代码

C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/InstallUtil.exe

安装服务的指令为:

 代码如下 复制代码

C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727>InstallUtil.exe
"C:/Documents and
Settings/Administrator/My Documents/Visual Studio 2008/Projects/SeraMailService/
SeraMailService/bin/Debug/SeraMailService.exe"

在运行的窗体中输入services.msc命令,来查看操作系统的服务。右键所安装的服务名称,启动服务即可。

 代码如下 复制代码

C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727>InstallUtil.exe /u
"C:/Documents and Settings/Administrator/My Documents/Visual Studio 2008/
Projects/SeraMailService/SeraMailService/bin/Debug/SeraMailService.exe"

时间: 2024-11-03 06:05:48

Windows服务实现自动发送邮件通知的相关文章

asp.net基于windows服务实现定时发送邮件的方法_实用技巧

本文实例讲述了asp.net基于windows服务实现定时发送邮件的方法.分享给大家供大家参考,具体如下: //定义组件 private System.Timers.Timer time; public int nowhour; public int minutes; public string sendTime; public Thread th; public string isOpen;//是否启用定时发送 public string strToEUser; public static i

windows服务,自动抓屏

问题描述 我想做个windows服务,隔一段时间自动抓下屏,把这个图片保存到某个文件夹下面.我想偷窥某MM的隐私,嘿嘿0_0~艾呀,还要她机器上去安装服务,得找个借口用下她电脑. 解决方案 解决方案二:晕.陋习...解决方案三:SmallPerson^_^解决方案四:我发你一个做好的服务吧,哈,正是你想要的那种解决方案五:你最接在她房间安装针孔和窃听器更好解决方案六:我发你一个做好的服务吧,哈,正是你想要的那种------------------No,自己动手丰衣足食.解决方案七:遇到问题了,S

VB.NET做的windows服务不能自动.启动;请高人指点

问题描述 我试着将一些一直要的事情用VB.NET做成WINDOWS系统服务.并注册服务也成功,功能也正常.但是,在服务管理的时候将其"启动类型"改为"自动";但是,重新启动操作系统后,发现服务并没有自动启动,即便是让它在启动失败后自动重新启动.按照cSDN中的说法:启动onstart的操作时间不超过30秒.我也修正了;即使ONSTART中只有一个动作(如下边的代码),也不行.请高人指点我一下,非常感谢.ProtectedOverridesSubOnStart(ByV

通过SSIS监控远程服务器Windows服务并发送邮件报警!

原文:通过SSIS监控远程服务器Windows服务并发送邮件报警!      利用SSIS不仅可以做BI项目的ETL,而且还可以做一些系统监控和维护工作,由于之前供应商写的Windows服务是读取ESB的消息进行处理,且通过OA流程与访客系统进行了集成,无论是ESB出现状况,还是Windows服务出现状况,都会对访问系统造成严重影响,导致内部员工无法进行接待外部人员,因此整体对ESB进行优化,在本人博客的前一篇已介绍了<通过SSIS监控远程服务器磁盘空间并发送邮件报警!>.本文实现的方法思路与

service-程序发布——把mfc程序(带有dll)做成安装包, 安装过程中自动安装windows服务

问题描述 程序发布--把mfc程序(带有dll)做成安装包, 安装过程中自动安装windows服务 如题 怎么实现??? 有高手留一下联系方式么~~跪求 如题 怎么实现??? 有高手留一下联系方式么~~跪求如题 怎么实现??? 解决方案 //打开服务控制管理器 SC_HANDLE hSCM = ::OpenSCManager(NULL, NULL, SC_MANAGER_ALL_ACCESS); if (hSCM == NULL) { return FALSE; } // Get the exe

windows 服务自动停掉,提示以下信息,麻烦各位大神指点一下是什么问题

问题描述 [114]ERRORDefaultBootstrap-Theprocesscrashedforanunhandledexception!System.Net.WebException:操作超时在System.Net.HttpWebRequest.GetResponse()在com.igetui.api.openservice.utils.ApiUrlRespectUtil.ThreadMethod(Objectob)在System.Threading.ExecutionContext.

在.NET下开发windows服务

创建 Windows 服务 -------------------------------------------------- 当创建服务时,可以使用称作 Windows 服务的 Visual Studio.NET 项目模板.此模板引用适当的类和命名空间.设置从服务基类的继承并重写您可能要重写的几种方法,从而自动为您完成大部分工作. 若要创建功能性服务,必须至少: 设置 ServiceName 属性. 为服务应用程序创建必需的安装程序. 重写 OnStart 和 OnStop 方法并为其指定代

如何在 Linux 上使用 Gmail SMTP 服务器发送邮件通知

如何在 Linux 上使用 Gmail SMTP 服务器发送邮件通知 假定你想配置一个 Linux 应用,用于从你的服务器或桌面客户端发送邮件信息.邮件信息可能是邮件简报.状态更新(如 Cachet).监控警报(如 Monit).磁盘时间(如 RAID mdadm)等等.当你要建立自己的 邮件发送服务器 传递信息时 ,你可以替代使用一个免费的公共 SMTP 服务器,从而避免遭受维护之苦. 谷歌的 Gmail 服务就是最可靠的 免费 SMTP 服务器 之一.想要从应用中发送邮件通知,你仅需在应用中

重新想象 Windows 8 Store Apps (36) - 通知: Tile 详解

原文:重新想象 Windows 8 Store Apps (36) - 通知: Tile 详解 [源码下载] 重新想象 Windows 8 Store Apps (36) - 通知: Tile 详解 作者:webabcd 介绍重新想象 Windows 8 Store Apps 之 通知 Tile - 基本应用参见 http://www.cnblogs.com/webabcd/archive/2013/06/17/3139740.html Tile - 全部 Tile 模板 Tile - 在一个