当尝试使用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上正常工作?
谢谢
答案 0 :(得分:0)
结果是 Digital Guardian阻塞了端口25 。 McAfee既不是问题,也不是组策略。
感谢大家的帮助。