Я бы рекомендовал вам не перебрасывать новое исключение, а просто использовать
catch (Exception ex)
{
Debug.WriteLine(ex.Message);
throw;
}
, перебрасывающее исключение сбрасывает стек, поэтому вы не можете надежно отследить источник ошибки.В этом случае (без повторной обработки) вы, вероятно, можете увидеть свойства InnerException и Status в visual studio, обычно это даст вам более подробную информацию о причине сбоя.(Часто блочный порт isp 25 трафика SMTP, если вы проводите локальное тестирование)
Во-вторых, вы можете попытаться настроить все детали подключения в web.config, а не жестко запрограммировать их в своем приложении, что упрощает тестирование изменений.,Ниже приведен пример использования gmail:
<system.net>
<mailSettings>
<smtp deliveryMethod="Network" from="username@gmail.com">
<network host="smtp.gmail.com" userName="username@gmail.com" password="password" enableSsl="true" port="587" />
</smtp>
</mailSettings>