[英]Send invoice email automatically in asp.net
現在,我們的asp.net網站正在手動發送發票,是否可以每5分鍾自動將電子郵件發送給客戶? 所有發票都使用軟件放入SQL Server數據庫,放入數據庫后,它們需要發送帶有附件PDF文件的不同客戶電子郵件地址。 這意味着代碼需要每5分鍾從數據庫中收集新的發票信息並發送一次。 然后創建一個日志文件,其中包含已發送到會計的成功和不成功的發票。
我可以使用任務計划程序或Windows服務嗎?
創建一個名為CronMail.aspx的頁面,並在load事件中發送電子郵件(我使用一些偽代碼解釋了這個想法):
void Page_Load(object source, EventArgs e)
{
//1. Check that more than 5 minutes happened before last sent
DateTime lastSent = ...;
if (DateTime.Now().Substract(lastSent).Minutes < 5)
return;
//2. Get your invoices and PDF files
var dataToSent = ...;
//3. Send your invoices
foreach(var item in dataToSent)
{
//4. Save sent date every time to avoid resending in case the whole operation takes more than 5 minutes
saveSentTime();
//5. Finally send your data
}
}
然后,您可以使用Windows任務計划程序每5分鍾調用一次URL: http://your_website/CronMail.aspx
這是一個示例: https : //superuser.com/questions/447368/set-windows-scheduler-to-schedule-open-a-website-webpage-or-the-bookmark (使用chrome代替iexplorer)
Hangfire庫是一個完整的后端作業計划程序和后台處理器,可在最新版本的ASP.NET上運行。 它可以自行運行(需要特殊的IIS應用程序池配置-“ AlwaysRunning”),而無需外部網頁ping或任務計划程序。 您可以安排許多作業每分鍾運行一次。
我已經取得了很多成功。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.