小程式僅含發送郵件功能,需每天自動執行一次,發送功能已實現。
public partial class MailService : ServiceBase {
private System.Timers.Timer _timer;
protected override void OnStart(string[] args) {
_timer = new System.Timers.Timer(24 * 60 * 60 * 1000); // 24小時
_timer.Elapsed += (s, e) => SendMail();
_timer.AutoReset = true;
_timer.Start();
// 可選:啟動時立即執行一次
// SendMail();
}
private void SendMail() { /* 你的發郵件代碼 */ }
protected override void OnStop() { _timer?.Stop(); _timer?.Dispose(); }
}
安裝服務:`installutil YourService.exe`,設定為自動啟動。
// WinForm/WPF 啟動時
var timer = new System.Windows.Forms.Timer();
timer.Interval = 24 * 60 * 60 * 1000;
timer.Tick += (s, e) => SendMail();
timer.Start();
缺點:程式關閉即停止,不適合伺服器端任務。
個人/小專案首選 任務排程器 + Console App,部署簡單、無需服務管理;企業級服務用 Windows Service 或 Quartz.NET 排程框架。