Will SMTP SendMail Method Always Trigger an SMTP Event?

We have a web page that shows a spinner when the user presses a button. The button action code sends an email with SMTP.SendMail. When any of the following SMTP events fire…Error, MessageSent or ServerError… we hide the spinner and communicate back to the user.

Is there any type of error condition that could occur with an SMTP socket that would cause any of the events listed above NOT to fire? Obviously, we don’t want the user waiting with a spinner indefinitely due to some internet related error. We can add a timer but we do not want to do that if it is unnecessary.

if app crashes, no event fires.

you could have a timer to stop and close socket after 2 minutes or so.