2010-01-27 63 views
1

我正在使用下面的代码,每次在Vista/Win7上都能很好地工作。为什么SmtpClient在XP/Vista/Win7上的表现会有所不同

private void SendEmail(string subject, string body, string attach) 
{ 
    using (MailMessage message = new MailMessage("[email protected]", "[email protected]", subject, body)) 
    { 
     message.IsBodyHtml = true; 

     if (!string.IsNullOrEmpty(attach)) 
     { 
      Attachment attached = new Attachment(attach); 
      message.Attachments.Add(attached); 
     } 

     SmtpClient client = new SmtpClient("smtp.gmail.com", 587) 
     { 
      Credentials = new NetworkCredential("[email protected]", "password"), 
      EnableSsl = true, 
      DeliveryMethod = SmtpDeliveryMethod.Network 
     }; 

     client.Send(message); 
    } 
} 

但是在Windows XP中我得到:

No connection could be made because the target machine actively refuses it 

我检查和Windows防火墙是完全禁用...

回答

2

从Windows机器尝试以下操作:

  1. windows key + r
  2. 类型cmd
  3. 类型telnet smtp.gmail.com 587

如果说拒绝连接或类似的,然后它是一个防火墙或网络问题,无关的代码。

+0

远程登录失败。由于某些原因,我们所有的XP机器都发生这种情况,Vista Vista也没有。我将不得不看看他们都安装了什么...... – Tim 2010-01-27 14:08:45

+0

但请注意,在某些版本的Windows上,默认情况下未安装“telnet.exe”。 – 2012-12-27 17:36:42

1

很难说如果是这样,但我们曾经有过这样的问题,而且它是一个杀毒软件,它是罪魁祸首。

0

您在所有三个系统上使用的是同一版本的System.Net.Mail吗?

此外,可能与Windows防火墙阻止连接(或其他防火墙)有关。

0

我怀疑这与操作系统有什么关系,这种异常通常是从内部冒出来的。捕获异常并查看内部异常并查看真正的问题。

然而,这类问题通常是防火墙堵塞,远程SMTP服务器阻止传入请求或设备已阻塞端口传出请求25.

相关问题