2009-09-11 176 views
0

我有代码如下:发送邮件失败(SmtpClient)

var smtpClient = new SmtpClient("my.mail.server"); 
smtpClient.Send(mailmessage); 

但是发送方法调用失败,出现“远程机器积极拒绝”异常消息。我知道没有防火墙阻塞因为我可以telnet到相同的地址,并通过服务器手动处理Smtp协议。我知道代码正在工作,因为我可以连接到不同于默认端口的端口25.没有软件防火墙阻止传输。

当wiresharking我可以看到telnet'ing时设置的包,我可以看到,当我尝试使用代码时,没有任何东西离开我的机器。所以这是一个安全的假设,问题出在我的机器上,并且与网络无关。

基本上我可以连接到所有其他地方而不是.NET代码,这导致我的问题可能是一个配置问题,但我缺乏什么我需要配置不同的想法。任何建议可能的原因?

编辑: 在只有两行发送邮件的项目中,我遇到同样的问题。当试图通过代码建立TCP连接时,我得到了同样的问题,所以我知道这与SMTP协议(或认证)无关,问题在于TCP套接字连接尝试被阻止,但我仍然不知道为什么

+0

如果您启动一个新项目并只包含此代码会发生什么? – jim

+0

你使用什么SMTP服务器? –

+0

@DaveG不知道它不在我的管理下,它被外包了 但我确信它与服务器无关,因为TCP包永远不会离开我的机器 –

回答

1

好吧,看起来系统管理员已经忘记了他们已经放置了两个防火墙...(只花了我两天左右的时间)当涉及到端口25我们的防病毒还包括反垃圾邮件。感谢您的想法和建议大家

1

你检查过SMTP服务器的配置吗?它可以配置为不允许匿名连接或拒绝您的IP地址。

您是否可以使用其他客户端通过SMTP服务器发送电子邮件,例如:外表?

+0

:)正如我所说我可以通过telnet连接到Smtp服务器。而我没有提到的服务器没有要求任何种类的凭证,我可以连接基本上任何东西,但我的.NET代码。 (我可以使用相同的代码连接到在同一台机器上运行在不同端口上的不同服务器,因此我知道该代码正在工作) –

3

你在运行什么操作系统?我现在要说明问题,并询问您是否已验证Windows防火墙已关闭? (我看到你的软件防火墙的评论,但是这往往被人忽略)正在使用

也可以尝试,验证端口,因为我们要使用我们像这样 - >

SmtpClient smtpClient = new SmtpClient("OURMAIL",25); 
smtpClient.Send(message); 

Exchange Ports

+0

我没有在DaveG的答案下看到您的意见....嗯。 –