[英]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計算機嘗試以下操作:
cmd
telnet smtp.gmail.com 587
如果說連接被拒絕或類似,則說明是防火牆或網絡問題,與代碼無關。
很難確定是否是這樣,但是我們曾在某個時候遇到過這個問題,而這正是防病毒實用程序的元凶。
您是否在所有三個系統上都使用相同版本的System.Net.Mail?
另外,可能與Windows防火牆阻止連接(或某些其他防火牆)有關。
我懷疑這與操作系統有關,這種類型的異常通常是從內部異常中冒出來的。 捕獲異常並查看內部異常,看看真正的問題是什么。
但是,此類問題通常是防火牆阻塞,遠程smtp服務器阻止傳入請求或您的計算機阻止端口25上的傳出請求。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.