我正在尝试让SmtpClient发送邮件,但它总是以超时结束:(
我使用的设置在Mozilla Thunderbird中工作,所以我100%确定问题出在我的代码中。我只是看不出问题所在。
这是我的代码:
MailMessage email = new MailMessage(fromAddress, to, subject, body);
SmtpClient smtp = new SmtpClient();
smtp.Host = HOSTNAME;
smtp.Port = PORT;
smtp.UseDefaultCredentials = false;
smtp.Credentials = new System.Net.NetworkCredential(USERNAME, PASSWORD)
smtp.DeliveryMethod = SmtpDeliveryMethod.Network;
smtp.EnableSsl = true;
smtp.Timeout = 10000;
smtp.Send(email);
任何想法可能出错?
已仔细检查设置以确保它们正确无误。当我在Thunderbird测试发送邮件时,我将它们从代码复制到Thunderbird(即我100%确定设置正确)。
谢谢!
答案 0 :(得分:1)
似乎SmtpClient无法很好地处理SSL。 (在此讨论:How can I send emails through SSL SMTP with the .NET Framework?和SmtpClient wont authenticate over SSL/TLS (not pointing to gmail))
您既可以不指定port和enablessl属性(默认值为25,false),也可以使用其他SMTP客户端。
答案 1 :(得分:0)
由于它在雷鸟中运行,因此您的凭据似乎有效。您是否尝试删除超时或在smtp.send周围创建一个try / catch以查看它失败的原因?