nor*_*bip 4 c# email asp.net-mvc msmq
我有一个Web应用程序,应该在特定操作后发送电子邮件.我有一些替代方法来处理这个我不确定哪一个是最好的.
首先,当用户执行操作时,电子邮件将直接从ASP.NET应用程序发送.但我认为这不是一个真正可靠的系统,因为如果SMTP服务器关闭或其他事情发生,用户只会得到一个反馈,他的行动无法完成.
作为替代方案,我正在考虑为我的想法实现排队系统:
您认为哪种方式最好?
使用MSMQ不是一个好的解决方案,因为每个大小限制为4 MB.http://blogs.msdn.com/b/johnbreakwell/archive/2007/08/22/why-is-there-a-4mb-limit-on-msmq-messages.aspx 更糟糕的情况是,如果MSMQ失败了它处理抛出错误或突然关闭,它将丢失许多消息.在我的情况下,当硬件和软件几乎是理想的时候,这个解决方案很好
使用数据库和窗口服务更好,因为它很简单,不需要太多努力.
我通常使用数据库和文件的组合.数据库包含用于保存标头信息的表和消息已被操作的标志(成功或错误或其他)和文件包含消息(html或plain)和原始格式的附件.当运行进程发送时,从文件组装消息比从查询blob/clob更快.由于他们在应用程序上使用文件系统,因此您可以添加服务器或组件等硬件,或者轻松添加系统的可用性.数据库也可以添加,但在数据库软件中会花费更多的许可证.我在x次发送电子邮件后添加测试发送电子邮件,以确保它运行良好; 此测试电子邮件将发送到我自己或虚拟收件箱和应用程序,以检查测试电子邮件是否与发送和接收的电子邮件相同.如果相同,则发送待处理的电子邮件将再次继续
如果您使用MS Exchange的另一种方法,您可以使用其Web服务来排队发送使用消息队列.这是一种简单的方法,但您需要许可证.您可以在MSDN库上看到如何利用MS Exchange Web服务.
| 归档时间: |
|
| 查看次数: |
2015 次 |
| 最近记录: |