簡體   English   中英

從ASP.NET MVC發送電子郵件

[英]Sending email from ASP.NET MVC

我正在用ASP.NET MVC 3 RC編寫用戶注冊過程,我想在該過程中向用戶發送確認電子郵件。 我知道我可以使用System.Net.Mail命名空間中的類來執行此操作,但是我對實現此最佳方法有一些疑問。

  1. 在我繼續編寫自己的代碼發送電子郵件之前,是否有諸如ASP.NET MVC的ActionMailer之類的現有解決方案?

  2. 如果我自己動手,是否應在請求期間在Web服務器上執行此操作,是否會在Web服務器上使用發送沼澤,在線程等待SMTP服務器響應時將它們綁起來? 如果是這樣, SendAsync會更好嗎?

  3. 最好通過將記錄寫入數據庫表並讓Windows服務定期掃描表並發送消息來將其完全從ASP.NET MVC中撤出嗎?

目前,我傾向於#3,因為這將使我能夠完全在另一台服務器上完成此工作,但是我想知道其他人在做什么。 是否有我未曾考慮過的選項和/或問題?

我個人認為#3是您的最佳選擇。 這是三個中最復雜的一個,但是沒有一個是非常復雜的。 但是,它的作用是:

  1. 給您記錄系統發送的所有電子郵件。
  2. 從實時應用程序中刪除電子郵件系統的依賴性。 (關注點分離總是很有趣。)
  3. 當電子郵件系統依賴性失敗時,提供自然的重試機制。

至於使MailMessage對象的創建/發送更加容易的現有庫,我從未見過需要。 如果您只是將郵件發送到SMTP服務器,則內置對象已足夠而且易於使用。

MvcMailer就像.Net的ActionMailer一樣。 請參閱此處的NuGet包和項目文檔

希望能幫助到你!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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