簡體   English   中英

在asp.net中自動發送發票電子郵件

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM