簡體   English   中英

為什么SmtpClient在XP / Vista / Win7上的行為會有所不同

[英]Why would SmtpClient behave differently on XP/Vista/Win7

我正在使用以下代碼,這些代碼似乎每次在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防火牆已完全禁用...

從Windows計算機嘗試以下操作:

  1. Windows鍵+ R
  2. 輸入cmd
  3. 鍵入telnet smtp.gmail.com 587

如果說連接被拒絕或類似,則說明是防火牆或網絡問題,與代碼無關。

很難確定是否是這樣,但是我們曾在某個時候遇到過這個問題,而這正是防病毒實用程序的元凶。

您是否在所有三個系統上都使用相同版本的System.Net.Mail?

另外,可能與Windows防火牆阻止連接(或某些其他防火牆)有關。

我懷疑這與操作系統有關,這種類型的異常通常是從內部異常中冒出來的。 捕獲異常並查看內部異常,看看真正的問題是什么。

但是,此類問題通常是防火牆阻塞,遠程smtp服務器阻止傳入請求或您的計算機阻止端口25上的傳出請求。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM