ASP.NET MVC:使用SendAsync发送电子邮件(System.Net.Mail)

时间:2009-05-31 05:32:51

标签: model-view-controller asynchronous sendasync

是否有任何方法在MVC 中使System.Net.Mail SendAsync工作,而不是阻塞发送方法?

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

非常感谢帮助:(

3 个答案:

答案 0 :(得分:2)

如果您使用第三方服务(例如Gmail)发送电子邮件并依赖SendEmailSendAsync,您可能需要设置自己的SMTP服务器,然后将其转发到Gmail。好处是SendEmail将更快地返回,您可能会忘记整个异步事件。

这样一来,如果gmail因为某种原因拒绝你,那么电子邮件仍然会留在你的本地队列中。

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

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

*当然我只记得我花了很长时间转换成异步后做了这个: - (

答案 1 :(得分:1)

答案 2 :(得分: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.

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