我有一个非常简单的.net应用程序,用于在.net上测试SMTP。但我收到这个奇怪的错误。 “System.Net.Mail.SmtpException:发送邮件失败.---> System.Net.WebException:无法连接到远程服务器---> System.Net.Sockets.SocketException:无法建立连接,因为目标机器主动拒绝它“
SMTP服务器是远程的,不需要任何类型的身份验证,因此我不需要凭据。但我可以使用相同的smtp服务器和相同的smtp设置从这台计算机发送邮件没有任何问题。
有什么想法吗?非常感谢。
Imports System.Net.Mail
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim smtp As New SmtpClient
smtp.Host = "10.241.128.220"
smtp.Port = 25
smtp.Send("nuri-fatih.guler@rzb.ro", "nuri-fatih.guler@rzb.ro", "test", "test")
End Sub
答案 0 :(得分:3)
确保您发送电子邮件的计算机有权将此邮件服务器用作中继。这不是一个编程问题,而是一个服务器问题,所以在Serverfault可能会更好地回答。
不过,这是一个很好的起点:http://support.microsoft.com/kb/895853
编辑 - 已添加。
我在不同的网站上找到了以下列表。
这是导致此问题的4个最可能原因。
我上面的回答是针对第4点,因为大多数邮件服务器都允许您阻止传递功能并将其打开到特定的IP地址。
因此,必须将SMTP服务器配置为允许您正在使用的计算机的IP地址将其用作传递SMTP服务器,这是您在使用System.Net.Mail命名空间时所执行的操作并指定本地主机以外的邮件服务器。
通常,当我遇到问题#4时,我可以使用Outlook发送。在这种情况下,必须遵循以下规则:
在这种情况下,Exchange正常工作,因为IMAP没有被阻止,但是System.Net.Mail使用SMTP,而MAPI不会阻止SMTP。
答案 1 :(得分:1)
我发现了这个问题。这是因为McAfee Antivirus。它封锁了25个港口。我禁用了它,问题已经解决了。感谢大家。特别是大卫。
答案 2 :(得分:0)