从ASP.NET MVC发送电子邮件

时间:2010-12-10 19:11:38

标签: .net asp.net-mvc email

我正在ASP.NET MVC 3 RC中编写用户注册过程,我想在此过程中向用户发送确认电子邮件。我知道我可以使用System.Net.Mail命名空间中的类来做到这一点,但我对实现它的最佳方法有几个问题。

  1. 在我编写自己的代码以发送电子邮件的路径之前,是否有针对ASP.NET MVC的ActionMailer等现有解决方案?

  2. 如果我自己滚动,我应该在请求期间在Web服务器上执行此操作,并使用Send阻止Web服务器,在等待SMTP服务器响应时占用线程?如果是这样,SendAsync会更好吗?

  3. 最好是从ASP.NET MVC中完全取出它,也许是通过将记录写入数据库表并让Windows服务定期扫描表并发送消息?

  4. 目前,我倾向于#3,因为这样可以让我灵活地在另一台服务器上完成这项工作,但是想知道别人在做什么。是否有我未考虑过的选项和/或问题?

2 个答案:

答案 0 :(得分:4)

我个人认为#3是你最好的选择。这是三者中最复杂的,但它们都不是非常复杂。但它的作用是:

  1. 为您提供系统发送的所有电子邮件的记录。
  2. 从实时应用程序中删除电子邮件系统的依赖关系。 (关注点分离总是很有趣。)
  3. 在电子邮件系统依赖关系失败时提供自然的重试机制。
  4. 对于使MailMessage对象的创建/发送更容易的现有库,我从未见过需要。如果您只是将邮件发送到SMTP服务器,则内置对象绰绰有余且易于使用。

答案 1 :(得分:3)

MvcMailer就像.Net的ActionMailer。请参阅NuGet包hereproject documentation

希望它有所帮助!