Вы создаете экземпляр своего объекта SmtpClient, используя его конструктор по умолчанию (без параметров) в этой строке вашего кода:
'(3) Create the SmtpClient object'
Dim smtp As New SmtpClient
Поскольку отправка электронного письма требует наличия доступа к действительному SMTP-серверу, этот конструктор попытается создать экземпляр объекта с использованием настроек SMTP-сервера, определенных в файле web.config, в частности в разделе System.Net. Ниже приведен пример этого:
<system.net>
<mailSettings>
<smtp>
<network host="[your smtp server address]" port="[your smtp port - usually 25]"/>
</smtp>
</mailSettings>
</system.net>
Если это отсутствует, у вашего объекта SmtpClient нет SMTP-сервера для подключения. Это может привести к появлению сообщения об ошибке.
Чтобы решить эту проблему, вы можете либо добавить этот раздел в файл web.config, указав действительный SMTP-сервер для объекта SmtpClient для подключения, либо вы можете опустить и жестко закодировать адрес сервера непосредственно при создании экземпляра вашего SmtpClient объект, используя один из перегруженных конструкторов, который принимает адрес / номер порта SMTP-сервера в качестве параметров. Смотрите здесь для деталей конструктора.
Примером этого может быть:
'(3) Create the SmtpClient object'
Dim smtp As New SmtpClient("[your SMTP server address]", 25)
Однако имейте в виду, что хотя вы можете указать адрес / порт SMTP-сервера в конструкторе SmtpClient, обычно рекомендуется настроить эти параметры в файле web.config и использовать конструктор по умолчанию (без параметров) в своем коде , Использование метода web.config позволяет обновлять адрес / порт SMTP-сервера, который вы используете, без повторной компиляции кода.