Первоначально я спрашивал об этом в SO, но кажется, что это более подходящее место.
По сути, у меня есть программа, которая отправляет электронную почту, которая работает на моем локальном компьютере и на сервере нашей компании. Однако он не работает при развертывании на клиентском сервере.
По какой-то причине программа не может подключиться к smtp-серверу. Вот точная ошибка:
System.Net.Sockets.SocketException (0x80004005): попытка подключения не удалась, потому что подключенная сторона не ответила должным образом через некоторое время, или установленное соединение не удалось, потому что подключенный узел не ответил
Я зарегистрировал SMTP-разговор, когда возникла эта ошибка, и он застрял на «AUTH LOGIN», а затем истекает время ожидания.
23.11.2021 17:00:13 - начать отправлять электронную почту...
23.11.2021 17:01:15 - не удалось отправить электронное письмо со следующей ошибкой:
23.11.2021 17:01:15 -
================================================== ===========================
#Версия: 7.8.0.1 - 2021-11-23 17:00:13:660
================================================== ===========================
Сервер: smtp.gmail.com
Порт: 587
Тип подключения: ConnectSTARTTLS
Протокол: SMTP
Тип авторизации: Аутауто
Уседефаулткредентиалс: Ложь
Пользователь: <Электронная почта>
Псевдоним:
Черновики: черновики
Пароль: <Пароль>
ЭХЛО: Ложь
КОНФЕРЕНЦИЯ: Ложь
HeloDomain: <client.domain>
ПочтаОт:
СоксПроксиСервер:
Порт сокспрокси: 1080
SocksProxyUser:
SocksProxyPassword:
Прокси-протокол: Socks5
================================================== ===========================
[17:00:13:666:Подробно] Подключение smtp.gmail.com 587 ...
[17:00:13:774:Подробно] Подключено
[17:00:14:347:S] 220 smtp.gmail.com ESMTP mu4sm722169pjb.8 - gsmtp
[17:00:14:348:C] EHLO <client.domain>
[17:00:14:566:С]
250-smtp.gmail.com к вашим услугам, [<client.ip>]
250-РАЗМЕР 35882577
250-8БИТИМИМ
250-STARTTLS
250 РАСШИРЕННЫХ КОДОВ СОСТОЯНИЯ
250-ТРУБОПРОВОД
250-РАЗБИВКА
250 СМТПУТФ8
[17:00:14:568:C] СТАРТЛС
[17:00:14:784:S] 220 2.0.0 Готов к запуску TLS
[17:00:14:898:C] EHLO <client.domain>
[17:00:15:114:С]
250-smtp.gmail.com к вашим услугам, [<client.ip>]
250-РАЗМЕР 35882577
250-8БИТИМИМ
250-AUTH LOGIN PLAIN XOAUTH2 PLAIN-CLIENTTOKEN OAUTHBEARER XOAUTH
250 РАСШИРЕННЫХ КОДОВ СОСТОЯНИЯ
250-ТРУБОПРОВОД
250-РАЗБИВКА
250 СМТПУТФ8
[17:00:15:118:C] АВТОРИЗАЦИЯ ВХОД
23.11.2021, 17:01:15 — System.Net.Sockets.SocketException (0x80004005): попытка подключения не удалась, поскольку подключенная сторона не ответила должным образом через некоторое время, или установленное соединение не удалось из-за сбоя подключенного хоста. ответить
Я уже пробовал много вещей, и вот, вероятно, некоторые примечательные:
- Разрешенный порт 587 в брандмауэре
- Отключенный брандмауэр
- Отключенный Защитник Windows
- Поиграл с разными TLS в
Протокол безопасности
- Пробовал как в smtp.gmail.com, так и в smtp.office365.com - та же проблема
- В другой версии кода, где
СерверСертификатеВалидатионКоллбэк
был переопределен, чтобы всегда возвращать true. Я действительно обнаружил ошибку события Windows, говорящую Сертификат, полученный с удаленного сервера, был выпущен ненадежным центром сертификации. Из-за этого никакие данные, содержащиеся в сертификате, не могут быть проверены. Не удалось выполнить запрос на подключение TLS. Прикрепленные данные содержат сертификат сервера.
Я просто не знаю, что еще делать. Кажется, это проблема инфраструктуры, будь то домен, сертификаты, сеть сервера (облачный сервер) и т. д., но я хочу убедиться в этом, прежде чем привлекать их. Или, по крайней мере, дайте им отправную точку, на что или где смотреть.