1

我正在使用以下代码,它似乎每次在 Vista/Win7 上都能完美运行。

private void SendEmail(string subject, string body, string attach)
{
    using (MailMessage message = new MailMessage("username@gmail.com", "username@gmail.com", 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("username@gmail.com", "password"),
            EnableSsl = true,
            DeliveryMethod = SmtpDeliveryMethod.Network
        };

        client.Send(message);
    }
}

但是在 Windows XP 上我得到:

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

我已经检查并完全禁用了 Windows 防火墙...

4

4 回答 4

2

从 Windows 机器尝试以下操作:

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

如果它说连接被拒绝或类似,那么它是防火墙或网络问题,与代码无关。

于 2010-01-27T13:21:41.110 回答
1

很难说是不是这样,但我们曾经遇到过这个问题,而罪魁祸首是一个防病毒实用程序。

于 2010-01-27T13:21:51.770 回答
0

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

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

于 2010-01-27T13:23:56.377 回答
0

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

但是,这类问题通常是防火墙阻塞、远程 smtp 服务器阻塞了传入请求或您的计算机阻塞了端口 25 上的传出请求。

于 2010-01-27T13:24:41.640 回答