无法从Windows 7 pc使用Visual Basic发送电子邮件:“操作已超时”

时间:2019-05-23 22:40:02

标签: vb.net email windows-7 smtp

当尝试使用Visual Basic控制台应用程序发送电子邮件时,出现错误:“操作超时”。我是从Windows 7 PC发送的。可以做到吗?

我发现许多帖子都说它失败了,因为Windows 7上没有没有SMTP客户端。但是,我下载 smpt4dev 并尝试通过“ localhost”连接到该主机时,得到的结果相同。

但是我可以从同一台计算机telnet到服务器,并且不会出错。我还可以使用以下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服务器上进行了尝试,得到的结果相同。我知道我的服务器名称,端口,用户名和密码是正确的。

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 pc上正常工作?

谢谢

1 个答案:

答案 0 :(得分:0)

结果是 Digital Guardian阻塞了端口25 。 McAfee既不是问题,也不是组策略。

感谢大家的帮助。