using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.Linq;
using System.Net.Mail;
using System.ServiceProcess;
using System.Text;
using System.Timers;
// installutil WindowsService.exe
// 功能參考: https://blog.youkuaiyun.com/xiaoguidangjiajia/article/details/52371354
namespace WindowsServiceMailSender
{
public partial class ServiceMailSender : ServiceBase
{
public ServiceMailSender()
{
InitializeComponent();
}
protected override void OnStart(string[] args)
{
Timer mytimer = new Timer();
mytimer.Enabled = true;
mytimer.Interval = 60000;//执行间隔时间,单位为毫秒;此时时间间隔为1分钟
mytimer.Start();
mytimer.Elapsed += new System.Timers.ElapsedEventHandler(MailSender);
}
protected override void OnStop()
{
}
private void MailSender(object source, ElapsedEventArgs e)
{
if (DateTime.Now.Hour != 10 || DateTime.Now.Minute != 01 || (int)DateTime.Now.DayOfWeek != 4)
{
return;
}
System.Net.Mail.MailMessage msg = new System.Net.Mail.MailMessage();
msg.CC.Add("xxxxxx@163.com");
msg.From = new MailAddress("xxxxxx@163.com", "10060542", System.Text.Encoding.UTF8);
/* 上面3个参数分别是发件人地址(可以随便写),发件人姓名,编码*/
msg.Subject = "週報提醒";//邮件标题
msg.SubjectEncoding = System.Text.Encoding.UTF8;//邮件标题编码
msg.Body = "Send From : MailSenderService \n\n" + "Send Date : "+ DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");//邮件内容
msg.BodyEncoding = System.Text.Encoding.UTF8;//邮件内容编码
msg.IsBodyHtml = false;//是否是HTML邮件
msg.Priority = MailPriority.Normal;//邮件优先级
SmtpClient client = new SmtpClient();
client.Host = "xxxxxx@163.com";
object userState = msg;
try
{
client.SendAsync(msg, userState);
}
catch (System.Net.Mail.SmtpException ex)
{
}
}
}
}
/*
一.安装服务:
C:\Windows\Microsoft.NET\Framework\v4.0.30319\InstallUtil.exe C:\MyWindowsService\WindowsServiceMailSender.exe
二.卸载服务:
C:\Windows\Microsoft.NET\Framework\v4.0.30319\InstallUtil.exe -u C:\MyWindowsService\WindowsServiceMailSender.exe
強制刪除服務:
sc delete servicename
*/