C# 通过SmtpClient发送电子邮件时超时
我试图通过SmtpClient类发送一封非常简单的电子邮件。我已经看了好几个小时了,我一直在遵循StackOverflow和MSDN的例子,但出于某种原因,我得到的只是超时 我已经更改了主机名和密码,但是我添加了下面的代码C# 通过SmtpClient发送电子邮件时超时,c#,email,smtpclient,C#,Email,Smtpclient,我试图通过SmtpClient类发送一封非常简单的电子邮件。我已经看了好几个小时了,我一直在遵循StackOverflow和MSDN的例子,但出于某种原因,我得到的只是超时 我已经更改了主机名和密码,但是我添加了下面的代码 static void Main(string[] args) { Int32 port = 465; String host = "host.co.uk"; MailAddress from = new MailAddress("test@emai
static void Main(string[] args)
{
Int32 port = 465;
String host = "host.co.uk";
MailAddress from = new MailAddress("test@email.co.uk");
MailAddress to = new MailAddress("paul@email.co.uk");
MailMessage msg = new MailMessage(from, to);
msg.Body = "Test Body";
msg.Subject = "Test Subject";
SmtpClient client = new SmtpClient();
client.DeliveryMethod = SmtpDeliveryMethod.Network;
client.Host = host;
client.Port = port;
client.Credentials = new System.Net.NetworkCredential("test@email.co.uk", "password");
client.UseDefaultCredentials = false;
client.Send(msg);
}
如您所见,这是一个控制台应用程序,它尝试发送电子邮件,然后退出。我把它从主项目中去掉,这样我就可以消除任何其他可能的原因(除了实际的电子邮件代码)
它抛出一个值为的System.Net.Mail.SmtpException
The operation has timed out.
我认为导致问题的原因是凭据,因为如果查看“client”中的值,它会将credentials属性显示为null,尽管在代码中进行了设置
我不得不承认我被难倒了。提前感谢您提供的任何帮助。谁是您真正的电子邮件提供商?它是内部托管服务器吗?谷歌?美国在线?基于此,您可能需要执行其他步骤才能建立到smtp服务器的连接。请注释掉将UseDefaultCredentials设置为False的行。有时您的internet服务提供商会阻止电子邮件端口。不确定这里是否是这种情况,但如果您还没有,我会尝试几个不同的端口。您是说hosts.co.uk吗?大多数情况下,主机的编写方式类似于smtp.host.co.uk。您尝试过端口587吗?请注意端口465是SSL。