2011-02-27 18 views
3

如何使用c#.net在每日,每週和每月的基礎上發送電子郵件?如何在每日,每週和每月的基礎上發送自動電子郵件?

我想創建一個Windows服務應用程序,但我不知道該怎麼做,如果這是正確的方法。

您的想法非常感謝。

+0

你真的需要從.NET應用程序發送電子郵件嗎?其他選項:從SQL Server作業發送。 – Alexan 2011-02-27 15:43:55

回答

2

Windows服務可能是最好的選擇。

在您的服務中有一個計時器,它可以隨着您需要的任何分辨率(每分鐘/每小時/每天等)觸發,並在計時器上打勾,甚至發送您的電子郵件。

manytutorialsforcreatingwindowsservices與.NET。

+0

這不是過度工程? Windows任務計劃程序有什麼問題? – 2011-02-28 12:26:18

2

一個Windows服務將會訣竅。 Windows服務的一個好處是它在Windows啓動時啓動(或者可以設置爲,無論如何)。所以機器可以保持相當的無人值守(作爲一個好的服務器應該),並且不需要任何人登錄到服務器上運行。因此,如果這是您場景的一個重要考慮因素,那麼Windows服務可能是一條可行的路。

如果您只是想創建一個控制檯應用程序(通常可以更容易地創建/測試/調試),那麼您可以使用本地Windows任務計劃程序對其進行計劃。但是,除非我錯了,否則我認爲用戶需要登錄到機器才能運行。至少在某些情況下。所以Windows服務可能是您無人值守的最佳選擇。

至於創建服務,Visual Studio應該有一個項目模板。調度將使用Timer進行處理。

2

您也可以使用Windows任務計劃程序。 Quartz.Net似乎也是正確的工具(雖然從未使用過)。

2

Windows服務是一個不錯的選擇。

請記住將狀態保存到磁盤(文件或數據庫),因爲可能會重新啓動服務(例如,由於重新引導)。例如,您的下一封電子郵件將在一週後發送,您必須將該日期保存到磁盤。因此,當服務器由於3天后的電源故障而關閉並在另一天後恢復時,Windows服務仍然可以根據保存到磁盤的日期設置正確的計時器。

1

創建一個控制檯應用程序,該應用程序將從Windows任務計劃程序啓動。創建一個Windows服務是非常複雜的,IMO,因爲您只需要根據時間間隔執行程序;而不是其他不可預知的外部事件,您需要一個「偵聽器」類型的應用程序。吻!

相關問題