public void Send(MailMessage mailMessage) { _validator.Validate(mailMessage); ISmtpClient client = null; try { client = _factory.Create(); SetUpClient(client); client.Send(mailMessage); } catch (ArgumentException e) { throw new SmptClientException("Cannot setup client.", e); } catch (InvalidOperationException e) { throw new SmptClientException("Client cannot do operation.", e); } catch (SmtpException e) { throw new SmptClientException("Client cannot send mail message.", e); } finally { client?.Dispose(); } }
/// <summary>Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.</summary> public void Dispose() { if (_client != null) { _client.Dispose(); } }
protected virtual void Dispose(bool disposing) { if (_disposed || !disposing) { return; } _smtpClient.Dispose(); _disposed = true; }
public void Dispose() { smtpClient.Dispose(); }