发送电子邮件的位置在哪里?服务层或网络层?

Sha*_*ean 2 asp.net-mvc wcf design-patterns

几个星期以来,我一直有这种设计模式问题.我在哪里放置发送电子邮件的逻辑?可以通过asp.net mvc Web界面或通过asp.net应用程序内部托管的wcf端点访问行为.

以下是该应用的功能:

  1. 邮件通知.
  2. 模板渲染 - 这意味着我必须知道url结构(动作,基地址等).

目前,我在web.config文件中存储基本URL和路径,并在服务层中包含此电子邮件服务.

一个特定功能是向用户发送确认电子邮件并将生成的确认URL发送给他们.(不知道如何从服务层生成此URL)

Joh*_*ell 6

永远不应该从网络层提供电子邮件.您永远不希望用户在发送电子邮件时等待.

最好的办法是创建一个持久的电子邮件队列(sql很好),另一个作业访问该队列以发送电子邮件.这使您能够重新发送失败的电子邮件并在Web请求线程之外完全运行它们.

  • 从来没有过?相当广泛的声明. (4认同)