Не удается отправить сообщение электронной почты с помощью Visual Basic с компьютера под управлением Windows 7: «Время операции истекло» - PullRequest
0 голосов
/ 24 мая 2019

При попытке отправить электронное письмо с помощью консольного приложения Visual Basic я получаю сообщение об ошибке: «Время операции истекло». Я отправляю с Windows 7 ПК. Можно ли это сделать?

Я обнаружил много сообщений, в которых говорится, что это не удается, потому что * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 5. Однако я скачал smpt4dev и получил те же результаты, когда пытался подключиться к нему через "localhost".

Но я могу подключиться к серверу с одного компьютера и не получить ошибок. Я также могу отправить электронное письмо, используя следующие команды telnet:

telnet SMTP.domain.xyz 25
helo SMTP.domain.xyz
mail from: f@domain.com
rcpt to: t@domain.com
data
subject: test email
.
quit

Я пробовал это на нескольких разных серверах smtp и получал одинаковые результаты. Я знаю, что имя моего сервера, порт, имя пользователя и pw указаны правильно.

Imports System.Net.Mail

Try
         Dim SMTPClientObj As New Net.Mail.SmtpClient
         SMTPClientObj.UseDefaultCredentials = False
         SMTPClientObj.Credentials = New System.Net.NetworkCredential(username, password)
         SMTPClientObj.Host = "mysmtpserver"
         SMTPClientObj.Port = 25
         SMTPClientObj.EnableSsl = False

         Dim e_mail As New MailMessage()
         e_mail.From = New MailAddress("test@test.com")
         e_mail.To.Add("test2@test.com")
         e_mail.Subject = "Email Sending Test"
         e_mail.IsBodyHtml = False
         e_mail.Body = "Test email from VB"

         SMTPClientObj.Send(e_mail)

         Dim x As New Mail.SmtpStatusCode
         Console.WriteLine("SmtpStatusCode: " & CStr(x))

         Console.WriteLine("Mail Sent.")

    Catch ex As Exception
         Dim x As New Mail.SmtpStatusCode
         Console.WriteLine("SmtpStatusCode: " & CStr(x))
         MsgBox(ex.Message)
         MsgBox(ex.ToString)
         MsgBox(ex.InnerException)
    End Try

На данный момент я просто хотел бы получить больше подробностей об ошибке вместо простого сообщения о превышении времени ожидания. Но я никогда раньше не использовал SmtpStatusCode и не уверен, как его использовать.

Приглашение ex.InnerException всегда пустое.

Можете ли вы дать мне какие-либо советы о том, как получить более подробную информацию об ошибке? Или что мне нужно сделать, чтобы это работало на моем компьютере с Windows 7?

Спасибо

1 Ответ

0 голосов
/ 30 мая 2019

Получается Digital Guardian блокировал порт 25 . McAfee не было проблемой и не было групповой политикой.

Спасибо всем за помощь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...