ASP.NET MVC: отправка электронной почты с использованием SendAsync (System.Net.Mail) - PullRequest
5 голосов
/ 31 мая 2009

есть ли способ в MVC , чтобы заставить System.Net.Mail SendAsync работать вместо блокирующего метода Send?

Я попытался использовать его, но нажал "Ошибка, при которой асинхронная операция должна иметь атрибут Async", которую я, очевидно, не могу устранить (или могу ли я?), Потому что нет страницы ASPX с директивой @Page Я мог бы добавить атрибут Async.

Помощь очень ценится: (

Ответы [ 3 ]

2 голосов
/ 13 октября 2009

Если вы используете стороннюю службу, такую ​​как gmail, для отправки электронной почты и полагаетесь на SendEmail или SendAsync, вы можете настроить свой собственный SMTP-сервер, который затем будет ретранслироваться на gmail. Преимущество в том, что SendEmail вернется намного быстрее, и вы сможете забыть всю асинхронную вещь.

Таким образом, если gmail отклоняет вас по какой-либо причине, электронное письмо все равно будет находиться в вашей локальной очереди.

Это быстрый и грязный способ получить несколько надежных настроек отправки электронной почты.

Инструкции (лично не тестировались, но я это делал несколько лет назад *) или см. Это для Windows 7

* конечно, я только вспомнил, что сделал это после долгого времени, преобразованного в асинхронный: - (

1 голос
/ 10 октября 2009

Возможно, вы захотите поместить электронное письмо в таблицу базы данных, а затем иметь демона, который рассылает электронные письма путем обработки очереди.

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

зависит от того, насколько важны эти электронные письма, но если они важны с точки зрения бизнеса и не должны быть потеряны, вам следует использовать этот подход.

1 голос
/ 31 мая 2009
...