Транспорту не удалось подключиться к серверу - CDO.Message - VB.NET

У меня есть приложение 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

Приведенные выше коды выполняются внутри цикла. Приведенный выше код работает достаточно хорошо, без каких-либо проблем. Но один или два раза в месяц я получаю следующее сообщение об ошибке, и приложение останавливается.

System.Runtime.InteropServices.COMException (0x80040213): транспорту не удалось подключиться к серверу.

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


person itssara    schedule 19.06.2012    source источник


Ответы (1)


Возможно, вы захотите обернуть вызов .Send() в Try...Catch и повторить попытку через несколько секунд, если это не удастся.

CDO, по-видимому, устарел в пользу System.Net.Mail. На сайте www.systemnetmail.com/ есть подробный список часто задаваемых вопросов, хотя я бы поискал в журналы событий для таких случайных ошибок.

Есть ли что-то еще, совпадающее с ошибкой, например, сервер только что перезагрузился?

person Andrew Morton    schedule 19.06.2012