- - PR -
ASP.NETでのメール再送方法
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2006-12-06 19:04
ASP.NET(C#)にてDBへある登録処理後にメールを送信するWeb
ページを作っています。 メール送信のクラスSystem.Net.Mail.SmtpClientを用いて pop認証後に送信処理を行い、送信が成功する場合が多いの ですが、時々エラーで送信できないことがあります。 この場合にSmtpException等を用いてエラーをcatchしているの ですが、送信を失敗した場合のメールの再送処理方法に悩んで おります。(対処方法はWebでも検索してみたのですが、具体的 なものが見つからず未だ悩み続けています。) エラーの例 ------------------------------------------------------- System.Net.Mail.SmtpException: メールを送信できませんでした。 ---> System.IO.IOException: 転送接続からデータを読み取れません: 確立された接続がホスト コンピュータのソウトウェアによって中止 されました。。 ---> System.Net.Sockets.SocketException: 確立された接続がホスト コンピュータのソウトウェアによって中止されました。 ------------------------------------------------------- 送信できなかった場合に、数回送信トライを繰り返すことをまず 考えたのですが、バックグラウンドでその処理を行えるものか、 またSMTPサーバーが応答しない場合には、時間をおいて送信を行う ようにすべきかなど、どのような対処が適当か教えていただければ 幸いです。 よろしくお願いいたします。 [ メッセージ編集済み 編集者: WiRIO 編集日時 2006-12-07 10:22 ] |
|
投稿日時: 2006-12-06 23:07
POP認証に送信ということは外部のSMTPサーバですよね?であればある程度の確率で「繋げない」状況はありそうです。
一般的にはSMTPサーバとしてlocalhostを指定します。つまり同じサーバでSMTPサービスを立ち上げて、外部SMTPサーバとのやりとりはそちらに(接続出来なかった場合の再送処理なども含めて)まかせるのが吉だと思います。 そういえばこういうケースもありましたね(この場合もLAN内のSMTPだと思います)。 http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=35245&forum=6 |
|
投稿日時: 2006-12-07 10:54
ご回答ありがとうございます。
ソースレベルで考えるのではなく、ローカルのSMTPサービスに 任せてしまうのですね。解決策になりそうです! [ メッセージ編集済み 編集者: WiRIO 編集日時 2006-12-07 10:54 ] |
1