Если я использую метод Send, я могу обработать любые исключения, как ожидалось.
Try
'Synchronous method
OutputStatus("Sending message, please wait")
smtp.Send(mail)
Catch smtpEx As SmtpCommandException
If smtpEx.ErrorCode = SmtpErrorCode.RecipientNotAccepted Then
OutputStatus("Unable to send message to: " & smtpEx.Mailbox.Address)
ElseIf smtpEx.ErrorCode = SmtpErrorCode.UnexpectedStatusCode Then
OutputStatus("Unable to send message: " & smtpEx.Message)
....
End If
Однако, если я использую метод SendAsync, я не получаю никаких исключений, и обработчик событий MessageSent не сработает (поэтому я застрял в цикле Do While).
Если с сообщением все в порядке, обработчик событий работает правильно.
AddHandler smtp.MessageSent, AddressOf SMTPMessageSent
mbSendingMessage = True
Try
smtp.SendAsync(mail)
Do While mbSendingMessage
Application.DoEvents()
Loop
Catch ex As Exception
OutputStatus("Error sending, see GWMailer.err")
End Try
....
Private Sub SMTPMessageSent(sender As Object, e As MailKit.MessageSentEventArgs)
mbSendingMessage = False
End Sub
Любая помощь с благодарностью.
Спасибо