5

MVC中有什么方法可以让 System.Net.Mail SendAsync 工作,而不是阻止 Send 方法?

我尝试使用它,但遇到“开始异步操作的页面必须具有 Async 属性”错误,我显然无法解决(或者我可以吗?)因为没有带有 @Page 指令的 ASPX 页面,我可以添加异步属性。

非常感谢您的帮助:(

4

3 回答 3

2

如果您使用第三方服务(例如 gmail)来发送您的电子邮件并依赖,SendEmail或者SendAsync您可能希望设置自己的 SMTP 服务器,然后该服务器将中继到 gmail。好处是它SendEmail会更快地返回,并且您可能会忘记整个异步操作。

这样,如果 gmail 出于任何原因拒绝您,该电子邮件仍将位于您的本地队列中。

这是获得可靠的电子邮件发送设置的一种快速而肮脏的方法。

Instructions (not personally tested, but i did this years ago*) or see this for Windows 7

*of course I only remembered i did this after spending a long time converting over to async :-(

于 2009-10-13T01:17:22.470 回答
1

看起来您想要对 ASP.NET MVC 的异步支持。另请参阅“为异步操作扩展 ASP.NET MVC ”。

这个 SO question也是相关的。

于 2009-05-31T05:39:33.633 回答
1

您可能需要考虑将电子邮件放入数据库表中,然后有一个通过处理队列发送电子邮件的守护进程。

a) if youre not sending billions of emails you can have a log of what you sent
b) you can resend if something fails.

取决于这些电子邮件的重要性,但如果从业务角度来看它们很重要并且不能丢失,那么您应该使用这种方法。

于 2009-10-10T02:35:15.530 回答