現在我們的asp.net網站手動發送發票,是否可以每5分鐘自動發送一次郵件給客戶?所有發票使用軟件放入SQL Server數據庫,放入數據庫後,需要將附件中的PDF文件發送到不同的客戶電子郵件地址。這意味着代碼需要每5分鐘從數據庫收集新的發票信息併發送。然後創建一個日誌文件,包括髮送到會計的成功和不成功的發票。在asp.net中自動發送發票郵件
我可以使用任務調度程序或Windows服務嗎?
現在我們的asp.net網站手動發送發票,是否可以每5分鐘自動發送一次郵件給客戶?所有發票使用軟件放入SQL Server數據庫,放入數據庫後,需要將附件中的PDF文件發送到不同的客戶電子郵件地址。這意味着代碼需要每5分鐘從數據庫收集新的發票信息併發送。然後創建一個日誌文件,包括髮送到會計的成功和不成功的發票。在asp.net中自動發送發票郵件
我可以使用任務調度程序或Windows服務嗎?
創建一個名爲CronMail.aspx頁面和發送負載情況下的郵件(我解釋使用一些僞代碼的想法):
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分:http://your_website/CronMail.aspx
下面是一個例子:https://superuser.com/questions/447368/set-windows-scheduler-to-schedule-open-a-website-webpage-or-the-bookmark(使用鉻代替IEXPLORER)
你的解決方案看起來不錯,我會嘗試。謝謝Isma。 – Iris
的Hangfire庫是對之上運行一個完整的後端作業調度和背景處理器更新版本的ASP.NET。它獨立運行(需要特殊的IIS應用程序池配置 - 「AlwaysRunning」),而無需外部網頁ping或任務調度程序。您可以安排大量工作,每分鐘運行一次。
我已經取得了很多成功。
在代碼插入數據庫之後,您可以在代碼中生成併發送發票嗎?這比每5分鐘投票更容易一些。 –
謝謝元素。但我怎麼知道數據被插入到數據庫?我無法觸摸數據庫,只能使用它。發票不是從網站插入的。它是由一個軟件插入。 @Elemental Pete – Iris
我建議,你應該創建一個emailsend.aspx頁面,然後它應該配置與web服務器的cron作業設施 –