我尝试让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%确定设置是正确的)。
谢谢!
发布于 2014-04-03 12:30:27
看起来SmtpClient不能很好地处理SSL。(此处讨论:How can I send emails through SSL SMTP with the .NET Framework?和SmtpClient wont authenticate over SSL/TLS (not pointing to gmail))
您可以不指定端口和enablessl属性(默认值为25,false),也可以使用其他SMTP客户端。
发布于 2014-01-20 17:59:40
既然它在thunderbird中工作,那么你的证书似乎也有效。您是否尝试过删除超时或围绕smtp.send创建一个try/catch,以了解其失败的原因?
https://stackoverflow.com/questions/21090104
复制相似问题