у меня есть полностью функциональное решение VB.NET, работающее с простым стандартным кодом я нашел в большом количестве сайтов вокруг сети, что-то вроде этого:.NET SMTP.send не работает, но без ошибок
Dim oMessage As New MailMessage
oMessage.From = New MailAddress("[email protected]")
oMessage.To.Add("[email protected]")
oMessage.Subject = "test mail"
oMessage.Body = "test mail body"
oMessage.IsBodyHtml = False
Dim oSMTP As New SmtpClient("192.168.1.253")
oSMTP.Port = 25
oSMTP.EnableSsl = False
oSMTP.Credentials = New System.Net.NetworkCredential("[email protected]", "password")
oSMTP.Send(oMessage)
Рабочее решение зависит от сервера gmail smtp с обычной конфигурацией. Я попытался воспроизвести одно и то же решение в другой среде, где SMTP-сервер находится в локальной сети (192.168.1.253) и использует порт 25, не требуется SSL. Факты: 1) сервер, на котором я пытаюсь развернуть мое решение, запускает стороннее программное обеспечение, отправляющее электронное письмо с выделенного адреса (мне нужно использовать тот же адрес электронной почты). Эта функциональность активна и работает; 2) Я попытался подключиться к SMPT-серверу через telnet, и мне удалось отправить электронное письмо на мой личный адрес электронной почты через протокол SMPT. Это ожидалось, потому что другое программное обеспечение не сталкивается с проблемой при выполнении той же работы; 3) Я протестировал свое решение с блоком try-catch, чтобы получить какую-либо ошибку, но не доходит до адресата, даже если мой код заканчивается без ошибок.
Я пробовал множество различных параметров для smtp и сообщений (а также с альтернативными адресами адресатов), но результат всегда был один и тот же: сообщение не отправлено. Последний шанс, который у меня есть, - искать любой конфликт с конфигурацией сервера или антивирусным программным обеспечением. Но я не могу понять, почему «простой» диалог с сервером через протокол SMPT является успешным, а мой простой код - нет.
Последнее примечание: почтовый сервер, о котором я упоминал, должен быть Microsoft Exchange Server.
Где может быть проблема? Любая помощь будет оценена.
Возможно, решение было единственной комбинацией, которую я забыл в своих ста тестах ... Как только я добавил строку oSMTP.dispose, решение стало работать. Это предложение встречается в нескольких других потоках, возможно, я пропустил его или, возможно, попробовал его с неправильной конфигурацией, поэтому сообщалось об ошибке до того, как был достигнут конец кода. –
Просто для того, чтобы подчеркнуть фактическое решение: ВСЕГДА ИСПОЛЬЗУЙТЕ УТИЛИЗАЦИЮ МЕТОДА ПОСЛЕ ИСПОЛЬЗОВАНИЯ объекта SMTPClient, чтобы убедиться, что соединение с сервером закрыто правильно. –