Вам не нужно, чтобы SMTP работал локально, поскольку код VB.Net должен просто использовать базовый TCP / IP для связи непосредственно с сервером ретрансляции.
Было бы полезно увидеть сообщение об ошибке, возможно, у сервера нет доступа к порту 25 на сервере ретрансляции (например, из-за конфигурации брандмауэра). Обратите внимание, что вы можете до некоторой степени проверить это подключение, запустив telnet из командной строки (на сервере) следующим образом:
telnet RelayServerAddress 25
Существует также вероятность того, что с сервером ретрансляции происходит некоторая аутентификация, когда вы запускаете код локально на своей машине под учетной записью домена, что не может произойти, когда код выполняется на сервере под локальной учетной записью (Я делаю некоторые большие предположения здесь).