Возможность (или нет) пинговать хост ничего не говорит о том, сможете ли вы подключиться к определенной службе на нем.Для этого вам нужно попытаться установить соединение.(И, разумеется, тот факт, что вы можете установить соединение, не обязательно означает, что рассматриваемая служба работает должным образом.)
Обычно рекомендуется использовать telnet
, чтобы попытаться подключиться к удаленномухост на рассматриваемом порту.Синтаксис в командной строке просто telnet host.fqdn.example.com portnumber
.Это скажет вам, есть ли вообще что-либо на другом конце канала, реагирующее на попытки соединения, что является первым шагом в определении, где проблема.
Во-вторых, обычно это хорошая идея, чтобы урезатькод для минимальной версии, которая демонстрирует проблемное поведение, и включает полный код, чтобы показать проблемное поведение.Вы используете в своем коде ряд переменных, о которых мы действительно ничего не знаем.
Некоторые интернет-провайдеры блокируют исходящие подключения к портам SMTP на хостах, отличных от своих собственных почтовых серверов, чтобы уменьшить количество исходящего спама.Может быть, в значении host
есть опечатка?Может быть, вы случайно использовали какую-то неожиданную реализацию MailMessage
?И так далее.
Тем не менее, я определенно сначала попытался бы подключиться к рассматриваемому почтовому серверу вручную через прокси-сервер, если вы используете его для подключения с использованием этого кода.Если это тоже не сработает, то ваша проблема, по крайней мере, не имеет ничего общего с кодом в вопросе, и вы можете посмотреть в другом месте (в этом случае одним из возможных кандидатов будут фильтры ISP; возможно, у них есть список разрешенных внешних SMTPхосты и Yahoo там нет?).