我有一个功能齐全的 VB.NET 解决方案,它使用我在网上很多网站上找到的简单标准代码,就像这样:
Dim oMessage As New MailMessage
oMessage.From = New MailAddress("someone@abc.com")
oMessage.To.Add("someone_else@abc.com")
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("someone@abc.com", "password")
oSMTP.Send(oMessage)
工作解决方案依赖于具有通常配置的 gmail smtp 服务器。我试图在另一个环境中复制相同的解决方案,其中 smtp 服务器位于公司 LAN (192.168.1.253) 并使用端口 25,不需要 SSL。事实:1)我试图部署我的解决方案的服务器正在运行一个第三方软件,它从一个专用地址发送电子邮件(我需要使用相同的电子邮件地址)。此功能处于活动状态且正在工作;2) 我尝试通过 telnet 连接到 SMPT 服务器,并成功通过 SMPT 协议向我的私人电子邮件地址发送了一封电子邮件。这是意料之中的,因为其他软件在做同样的工作时没有遇到问题;3)我测试了我的解决方案,使用 try-catch 块来获取任何错误,但没有电子邮件到达目的地,即使我的代码终止时没有错误。
我为 smtp 和消息(以及其他目标地址)尝试了很多不同的选项,但结果始终是相同的:没有发送消息。我最后的机会是寻找与服务器配置或防病毒软件的任何冲突。但我无法理解为什么通过 SMPT 协议与服务器的“普通”对话是成功的,而我非常简单的代码却没有。
最后一点:我提到的邮件服务器应该是 Microsoft Exchange Server。
问题可能出在哪里?任何帮助将不胜感激。