5

ブロッキング Send メソッドの代わりに、MVCで System.Net.Mail SendAsync を機能させる方法はありますか?

私はそれを使用しようとしましたが、「非同期操作を開始するページには Async 属性が必要です」というエラーが発生しました。非同期属性。

助けていただければ幸いです:(

4

3 に答える 3

2

gmail などのサード パーティ サービスを使用して電子メールを送信し、これに依存している場合、SendEmailまたはSendAsync独自の SMTP サーバーをセットアップして gmail にリレーすることをお勧めします。利点は、SendEmailはるかに高速に返されることであり、非同期のこと全体を忘れることができる場合があります。

そうすれば、何らかの理由で Gmail が拒否した場合でも、メールはローカル キューに残ります。

これは、ある程度信頼性の高い電子メール送信設定を取得するための、手っ取り早い汚い方法です。

手順 (個人的にはテストしていませんが、数年前にテストしました*)またはWindows 7 についてはこちらを参照してください

*もちろん、非同期への変換に長い時間を費やした後にこれを行ったことを思い出しただけです:-(

于 2009-10-13T01:17:22.470 に答える
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 に答える
1

ASP.NET MVC の非同期サポートが必要なようです。「非同期アクション用に ASP.NET MVC を拡張する」も参照してください。

このSOの質問も関連しています。

于 2009-05-31T05:39:33.633 に答える