0

サーバー上で VB.net アプリケーションを実行しており、毎日 200 通近くのメールを送信しています。以下は私のコーディングです:

Dim objNewMail = CreateObject("CDO.Message")
                  objNewMail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
                    objNewMail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "localhost"
                    objNewMail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
                    objNewMail.Configuration.Fields.Update()

                    objNewMail.From = mailFrom
                    objNewMail.To = mailTO
                    objNewMail.CC = mailCC
                    objNewMail.bcc = mailBCC

                    objNewMail.Subject = mailSubject
                    objNewMail.HTMLBody = content
                    objNewMail.Send()

                    objNewMail = Nothing

上記のコードはループ内で実行されます。上記のコードは問題なく動作します。しかし、月に 1 ~ 2 回、次のエラー メッセージが表示され、アプリケーションが停止します。

System.Runtime.InteropServices.COMException (0x80040213): トランスポートがサーバーに接続できませんでした。

誰かがこの問題を解決するのを手伝ってくれますか、それとも他のより優れた高度なアプローチにも対応できますか?

4

1 に答える 1

1

.Send() 呼び出しを Try...Catch でラップし、失敗した場合は数秒後に再試行することをお勧めします。

CDO は、System.Net.Mail に取って代わって廃止されたようです。www.systemnetmail.com/に総合的な FAQ を掲載したサイトがありますが、イベント ログでそのようなエラーが時折発生することを確認しています。

サーバーが再起動したなど、エラーと一致するものは他にありますか?

于 2012-06-19T19:21:11.017 に答える