У меня проблема с приложением, которое я сделал для отправки электронных писем в Bulk. Шаги, которые принимаются описаны ниже:SMTP-соединение требует времени для подключения после Dispose
- Во-первых, соединение SMTP производится (анонимный доступ используется)
- Приложение отправляет 10 писем в пакете (10 это предел SMTP, принимает для каждого соединения)
- Когда 10 писем достигнуты, сеанс SMTP расположен и создается новый.
Проблема я столкнулся в том, что после того, как 3-й серии, я начинаю сталкиваться много проблем времени из SMTP (то есть приложение либо говорит тайм-аут или неудачное отправленного по электронной почте), и это выходит до конца и существует около 20-30 сбоев из 221 электронных писем.
Ниже приведен код, который я написал для этого:
Try
'create the mail message
Dim mail As New MailMessage()
'set the addresses
mail.From = New MailAddress("[email protected]")
If (ConfigurationManager.AppSettings("Setup").Equals("Testing")) Then
mail.[To].Add("[email protected]")
'mail.[To].Add("[email protected]")
Else
mail.[To].Add(recepient)
mail.[Bcc].Add("[email protected]")
End If
'set the content
mail.Subject = subject
mail.Body = body
smtp.Port = 25
'send the message
objWriter.WriteLine("Case No: " + CaseNo + "From: " + mail.From.ToString + " " + "To: " + mail.To.ToString + " " + "subject: " + mail.Subject.ToString + " Email Sent")
Console.WriteLine("Email Sent to the address: " + recepient)
' Update handback email column
Updatehandback(CaseNo, "Yes")
mailcount = mailcount + 1
Catch ex As Exception
ex.StackTrace.ToString()
'objWriter.WriteLine(ex.Message.ToString + " " + ex.InnerException.ToString)
objWriter.WriteLine(ex.Message.ToString)
objWriter.WriteLine("Case No: " + CaseNo + " Email Not Sents")
' Update handback email column
Updatehandback(CaseNo, "No")
End Try
' Check to see if mail count has reached 9
If (mailcount = 9) Then
Console.WriteLine("***************MailCount Exhausted, Re-creating SMTP link******************")
smtp.Dispose()
mailcount = 0
Threading.Thread.Sleep(18000)
smtp = New SmtpClient("87.101.183.161")
End If
челобитных, любая помощь по этому вопросу будет высоко оценена, как я застряли в этом в течение недели, я уже связался с провайдером SMTP и они скажем, что все было правильно настроено в конце, и у них нет проблем с другими клиентами, которые используют один и тот же SMTP-сервер для электронных писем.
Кроме того, объект SMTP является статическим объектом перед началом кода и повторно используется.
Спасибо.
Обновление: Я также получаю несколько пропущенных писем (т.е. я отправил 220 писем, из которых 20 были неудачами), поэтому технически у меня должно быть 200 в моем тестовом почтовом ящике, но у меня только 192, сервер SMTP занимает время, чтобы отправить все электронные письма и, возможно, из-за того, что электронные письма пропущены, и я столкнулся с таймаутами. Есть ли способ отслеживать, занят ли SMTP или нет? –